【问题标题】:PHP application deployment with elastic beanstalk使用弹性 beantalk 部署 PHP 应用程序
【发布时间】:2016-01-11 08:59:09
【问题描述】:

我有一个 Laravel 5.1 PHP 应用程序,它使用 composer 作为 PHP 依赖管理器和 npm 作为 JavaScript 依赖管理器,到目前为止一切都很好。

我想要这个应用程序的实时版本,我想要使用 ElasticBeanstalk 自动部署,我创建了一个如下所示的配置文件:

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”,一切都会上线!

【问题讨论】:

    标签: php deployment laravel-5 amazon-elastic-beanstalk


    【解决方案1】:

    您应该能够为此使用环境配置选项,而不是自己编写 bash 文件:

    Customising software on linux servers

    这将允许您执行以下操作:

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

    但是:

    Elastic Beanstalk 目前支持以下包管理器:yum、rubygems、python 和 rpm

    所以你仍然需要手动执行npm install gulp, ...

    【讨论】:

      猜你喜欢
      • 2018-03-26
      • 2019-05-01
      • 2014-07-12
      • 2014-11-29
      • 2017-01-13
      • 2020-11-25
      • 2017-12-06
      • 2016-02-26
      • 2015-03-19
      相关资源
      最近更新 更多