AWS Elastic Beanstalk 部署顺序
AWS Elastic Beanstalk Deployment Order
我正在将代码部署到单实例 Web 服务器 AWS EB 环境,它将 provision/update 我连接的 RDS 数据库。我有一个调用部署代码的 .ebextensions 文件:
---
container_commands:
01deploydb:
command: /var/www/html/php/cli/deploy-db.php
leader_only: true
在同一部署中,我将 deploy-db.php 文件放回一个目录到 /cli/
。在部署时,我得到 ERROR: [Instance: i-*****] Command failed on instance. Return code: 127 Output: /bin/sh: /var/www/html/php/cli/deploy-db.php: No such file or directory.
container_command 01deploydb in .ebextensions/01_db.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
如果我部署一个不包含命令的版本,然后部署包含命令的第二个更新,没有错误。但是,同时添加命令和它调用的文件会产生错误。早些时候发生了类似的序列,但 command/file.
我的问题是:是否有关于 AWS 如何更新环境的文档 order/sequence? 我本以为我的新版本会完全部署(并且.php 文件安装)在调用 container_commands 之前。
命令:第 运行 节,在项目文件到位之前。例如,您可以在这里安装服务器包。
container_commands:在将文件放入其最终目的地之前,分段目录中的 运行s 部分。如果需要,您可以在此处修改文件。当前路径是这个暂存目录,所以你可以 运行 像这样(我可能把应用程序目录弄错了,也许应该是 php/cli/deploy-db.php
)
container_commands:
01deploydb:
command: cli/deploy-db.php
leader_only: true
以上参考:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
您还可以 运行 post 部署脚本。这没有很好的记录(至少不是)。你可以这样做(虽然它不会只是领导者,但你可以通过 container_commands:
将文件放在这个目录中):
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_deploy.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
/var/www/html/php/cli/deploy-db.php
我正在将代码部署到单实例 Web 服务器 AWS EB 环境,它将 provision/update 我连接的 RDS 数据库。我有一个调用部署代码的 .ebextensions 文件:
---
container_commands:
01deploydb:
command: /var/www/html/php/cli/deploy-db.php
leader_only: true
在同一部署中,我将 deploy-db.php 文件放回一个目录到 /cli/
。在部署时,我得到 ERROR: [Instance: i-*****] Command failed on instance. Return code: 127 Output: /bin/sh: /var/www/html/php/cli/deploy-db.php: No such file or directory.
container_command 01deploydb in .ebextensions/01_db.config failed. For more detail, check /var/log/eb-activity.log using console or EB CLI.
如果我部署一个不包含命令的版本,然后部署包含命令的第二个更新,没有错误。但是,同时添加命令和它调用的文件会产生错误。早些时候发生了类似的序列,但 command/file.
我的问题是:是否有关于 AWS 如何更新环境的文档 order/sequence? 我本以为我的新版本会完全部署(并且.php 文件安装)在调用 container_commands 之前。
命令:第 运行 节,在项目文件到位之前。例如,您可以在这里安装服务器包。
container_commands:在将文件放入其最终目的地之前,分段目录中的 运行s 部分。如果需要,您可以在此处修改文件。当前路径是这个暂存目录,所以你可以 运行 像这样(我可能把应用程序目录弄错了,也许应该是 php/cli/deploy-db.php
)
container_commands:
01deploydb:
command: cli/deploy-db.php
leader_only: true
以上参考:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html
您还可以 运行 post 部署脚本。这没有很好的记录(至少不是)。你可以这样做(虽然它不会只是领导者,但你可以通过 container_commands:
将文件放在这个目录中):
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/99_deploy.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
/var/www/html/php/cli/deploy-db.php