簡體   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