0

我有一个Laravel 5.1 PHP应用程序,它使用作为PHP依赖关系管理器的composer和npm作为JavaScript依赖关系管理器,迄今为止这么好。使用弹性beanstalk的PHP应用程序部署

我想有这样的应用程序的实时版本,我想ElasticBeanstalk自动部署,我创建了一个文件CONFI看起来像以下:

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 

此设置某个工作和某个它将需要30多分钟才能完成, elasticbeanstalk触发超时错误

现在下面块是有

yum -y --enablerepo=epel install nodejs npm 
npm install -g gulp 
的原因

是因为如果应用程序需要扩展到多台服务器节点有可能被 没有安装,这将安装节点为我

现在我的问题是:我这样做对吗?这是解决自动部署问题的正确方法吗? 有时部署需要30多分钟才能执行,这是否正常?我可以改进我的部署吗? 我非常喜欢键入“eb deploy”,一切都将开始!

回答

0

您应该能够用于该环境的配置选项,而不是写一个bash文件了:

Customising software on linux servers

这将允许你做这样的事情:

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

然而:

Elastic Beanstalk当前支持以下翼式封装经理:百胜,RubyGems的,Python和转

所以你仍然需要做的npm install gulp,手动

...
相关问题