AWS Elasticbeanstalk で Docker と ebextensions を使用する

AWS Elasticbeanstalk で Docker と ebextensions を使用する

ドキュメントによると:

詳しくは、https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_docker_image.html をご覧ください。

単一コンテナ Docker Elasticbeanstalk 環境で ebextensions を使用する場合は、次の手順を実行する必要があります。

  1. アプリケーションのバージョンとしてzipアーカイブを使用する
  2. アーカイブにDockerfile.aws.jsonファイルを含める
  3. アーカイブにDockerfileファイルを含める
  4. アーカイブに.ebextensionsフォルダを含める

使用されるDockerイメージはDockerfileによって作成されたイメージであり、Dockerfile.aws.jsonで指定されたイメージではありません。

私の場合、Elasticbeanstalk で Docker イメージをその場でビルドしたくありません。代わりに、AWS ECR のイメージを使用したいと思います。

その場合、以下の内容のみを含む Dockerfile を指定すればよいでしょうか:

FROM F11111111111.dkr.ecr.us-west-2.amazonaws.com/<my-image>:latest
EXPOSE 80

これは、ベースからローカルの変更されていないイメージを構築してそれを使用するだけでしょうか?

答え1

これをテストすることができ、動作することが確認できました。

ElasticBeanstalk では、Dockerfile がベースイメージ上に構築され、ベースイメージに追加されることを前提としていますが、実際にこれを行う必要はありません。

Dockerfile は、使用したいベースイメージ (AWS ECR 内など) と、ElasticBeankstalk インスタンスにデプロイされるときに公開するポートを簡単に参照できます。

これにより、単一コンテナの Docker 環境で ebextensions を使用できるようになります。

関連情報