0

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!

Répondre

0

Vous devriez être en mesure d'utiliser les options de configuration de l'environnement pour cela plutôt que d'écrire un bash fichier vous-même:

Customising software on linux servers

Cela vous permettra de faire quelque chose comme ceci:

packages: 
    yum: 
    nodejs: [] 
    npm: [] 

Cependant :

Elastic Beanstalk prend actuellement en charge le suivi gestionnaires de paquets d'aile: miam, rubygems, python et rpm

vous aurez donc besoin encore faire l'npm install gulp, ... manuellement