AWS Elastic Beanstalk で Docker を使用する場合、Docker RUN および CMD エントリを基準にして ebextensions はいつ実行されますか?

AWS Elastic Beanstalk で Docker を使用する場合、Docker RUN および CMD エントリを基準にして ebextensions はいつ実行されますか?

起動順序に関するドキュメントが見つかりません (おそらく適切な場所を探していないだけでしょう)。

Docker 側では、Dockerfile 内のすべてのものが一緒に実行され、その後に実際にサーバーを起動するために実行される CMD エントリがあります。

私が知りたいのは、ebextensions 内のコマンドがこれに関連していつ実行されるかということです。

Dockerfile の処理が行われる前ですか? Dockerfile の処理の大部分が終わった後ですが、CMD の前ですか、それともすべてが終わった後ですか?

答え1

このページは役に立ちます:Linux サーバー上のソフトウェアのカスタマイズ | AWS Elastic Beanstalk

「コマンド」の下には、「アプリケーションと Web サーバーが設定され、アプリケーション バージョン ファイルが抽出される前に実行する」と書かれています。

「コンテナ コマンド」の下には、「アプリケーションと Web サーバーがセットアップされ、アプリケーション バージョン アーカイブが抽出された後、アプリケーション バージョンがデプロイされる前に実行する」と記載されています。

実験してみると、次のようになると思います:

  1. ebextensionsコマンドを実行する
  2. Docker イメージを 'aws_beanstalk/staging-app' としてビルドします。
  3. ebextensionsコンテナコマンドを実行する
  4. イメージの名前をaws_beanstalk/current-appに変更します。
  5. 画像を開始

コンテナ コマンドからステージング アプリ イメージに対して実行を正常に呼び出すことができ、それが私の目的でした。

関連情報