J'ai une application PHP Laravel 5.1 qui utilise compositeur comme gestionnaire de dépendances PHP et npm comme gestionnaire de dépendance JavaScript, jusqu'ici tout va bien.Déploiement d'application PHP avec beanstalk élastique
Je veux avoir une version live de cette application et je veux le déploiement automatique avec ElasticBeanstalk, j'ai créé un fichier confi qui ressemble à ce qui suit:
files:
/opt/elasticbeanstalk/hooks/appdeploy/pre/11_build.sh:
group: root
mode: "000755"
owner: root
content: |
#!/usr/bin/env bash
set -xe
. /opt/elasticbeanstalk/support/envvars
EB_APP_STAGING_DIR=$(/opt/elasticbeanstalk/bin/get-config container -k app_staging_dir)
cd $EB_APP_STAGING_DIR
php artisan migrate --env="local"
yum -y --enablerepo=epel install nodejs npm
npm install -g gulp
npm install
gulp --production
option_settings:
-
namespace: "aws:elasticbeanstalk:command"
option_name: Timeout
value: 1600
cet ensemble fonctionne parfois et parfois il sera prendre plus de 30 minutes pour remplir et elasticbeanstalk déclenche une erreur de délai d'attente
maintenant, la raison pour laquelle le bloc suivant est là
yum -y --enablerepo=epel install nodejs npm
npm install -g gulp
est parce que si l'application doit évoluer vers plusieurs serveurs nœud peut potentiellement ne pas être installé et qui va installer le nœud pour moi
Maintenant ma question est: Est-ce que je le fais bien? Est-ce la bonne façon de s'attaquer au déploiement automatique? parfois le déploiement prendra plus de 30 minutes à s'exécuter, est-ce normal? puis-je améliorer mon déploiement? J'aime beaucoup taper "eb deploy" et tout ira en live!