起動順序に関するドキュメントが見つかりません (おそらく適切な場所を探していないだけでしょう)。
Docker 側では、Dockerfile 内のすべてのものが一緒に実行され、その後に実際にサーバーを起動するために実行される CMD エントリがあります。
私が知りたいのは、ebextensions 内のコマンドがこれに関連していつ実行されるかということです。
Dockerfile の処理が行われる前ですか? Dockerfile の処理の大部分が終わった後ですが、CMD の前ですか、それともすべてが終わった後ですか?
答え1
このページは役に立ちます:Linux サーバー上のソフトウェアのカスタマイズ | AWS Elastic Beanstalk
「コマンド」の下には、「アプリケーションと Web サーバーが設定され、アプリケーション バージョン ファイルが抽出される前に実行する」と書かれています。
「コンテナ コマンド」の下には、「アプリケーションと Web サーバーがセットアップされ、アプリケーション バージョン アーカイブが抽出された後、アプリケーション バージョンがデプロイされる前に実行する」と記載されています。
実験してみると、次のようになると思います:
- ebextensionsコマンドを実行する
- Docker イメージを 'aws_beanstalk/staging-app' としてビルドします。
- ebextensionsコンテナコマンドを実行する
- イメージの名前をaws_beanstalk/current-appに変更します。
- 画像を開始
コンテナ コマンドからステージング アプリ イメージに対して実行を正常に呼び出すことができ、それが私の目的でした。