繁体   English   中英

AWS Elastic Beanstalk部署顺序

[英]AWS Elastic Beanstalk Deployment Order

我正在将代码部署到单实例Web服务器AWS EB环境中,该环境将配置/更新我连接的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. 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.

如果我部署的版本不包含该命令,则部署第二个包含该命令的更新,则没有错误。 但是,同时添加命令和它调用的文件会产生错误。 先前使用不同的命令/文件发生了类似的顺序。

我的问题是:AWS如何更新环境是否有记录的订单/顺序? 我希望在调用container_commands之前,我的新版本将完全部署(并安装.php文件)。

命令:部分在放置项目文件之前运行。 例如,您可以在此处安装服务器软件包。

container_commands:节在将文件放入其最终目的地之前,在暂存目录中运行。 如果需要,您可以在此处修改文件。 当前路径是此暂存目录,因此您可以像这样运行它(我可能将应用程序目录弄错了,也许应该是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

您还可以运行部署后脚本。 这没有很好的记录(至少没有记录)。 您可以执行以下操作(尽管它不会成为领导者,但是您可以通过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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM