これがエラスティックビーンズトークの間違った使い方であることがわかりました。アプリは実行されますが、正しい解決策ではなくハックになります。
次の設定を使用してPHPアプリケーションをデプロイしています:
PHPスクリプトは、バックグラウンドタスクとしてデプロイ後フックで実行する必要があり、実行を停止することはありません。これにより、パイプラインが事実上詰まります。
パイプラインが永久に実行されているスクリーンショット(意図的に停止)
AWS ElasticBeanstalkアプリケーションのヘルスステータスをチェックするBitbucketパイプライン
.ebextensions構成ファイルのコードは次のとおりです。
container_commands:
01-create_post_hook:
command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post"
ignoreErrors: true
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/start.sh":
mode: "000770"
owner: root
group: root
content: | #!/bin/bash
echo "--------Starting Runner------------"
php /var/app/current/runner.php &
バックグラウンドで実行されるはずのスクリプトは実際には終了していないため、アプリケーションのヘルスステータスは常に「info」のままです。アプリケーションを正常にデプロイするには「OK」である必要があるため、これは問題です。
アプリケーションの正常性が「OK」ではなく「情報」でスタックしている
私がインターネット全体で見つけた同様の質問:
https://forums.aws.Amazon.com/thread.jspa?threadID=301439&tstart=https://forums.aws.Amazon.com/thread.jspa?messageID= 425130&#4251
通常、これらの処理には、Jenkins、CircleCI、BambooなどのCI/CD(継続的インテグレーション/継続的デリバリー)ツールを使用します。 BitbucketからWebhookを取得できます。これにより、PHPスクリプトの呼び出し、bashスクリプトの実行、raketaskの実行など、あらゆる種類のタスクがトリガーされます。