0

私は、Elastic Beanstalk上でCodePipeline上のCI/CDを実行しているマルチコンテナDockerアプリケーションを使用しています。AWS CodePipeline - 既存のDockerrun.aws.jsonを使用してElastic Beanstalkにデプロイ

  • フロントエンドリポジトリ/画像/パイプライン
  • バックエンドリポジトリ/画像/パイプライン
  • 配備リポジトリ(Dockerrun.aws.jsonnginx/conf.d/など)
:私のアプリケーションは、複数のリポジトリと複数の画像に分割されます

私がElastic Beanstalkにデプロイするのは、デプロイメントリポジトリだけです。フロントエンドリポジトリとバックエンドリポジトリには、Dockerrun.aws.jsonファイル、環境変数などに関する情報はありません。

私の問題は、フロントエンドリポジトリとバックエンドリポジトリの両方のCodePipelineの最新のステップで、それをElastic Beanstalk出力成果物にDockerrun.aws.jsonファイルが含まれていないため失敗します。

私がしたいのは、Pipelineはイメージを構築し、ECR(これはすでに正常に動作しています)にプッシュし、Elastic Beanstalkを起動してイメージを更新/プルダウンする必要があります。これはどうすればいいですか?私はビルドからアーティファクトをElastic Beanstalkにプッシュしたくありません。

答えて

0

Elastic Beanstalkは、単一の「モノポ」を使い、マルチレポアプリケーションではないようです。したがって、複数のリポジトリを使用する代わりに、それらを単一のリポジトリにマージしました。

私の現在のリポジトリには、次のようになります。

.git/ 
backend_app/ 
frontend_app/ 
Dockerrun.aws.json 

を今、私は私のリポジトリにプッシュするたびに、AWS CodePipelineが変更をピックアップし、成功した私のElastic Beanstalkでアプリケーションに展開することができます。

マイクロサービス、マルチレポなどを使用してアプリケーションを実行したい方は、Elastic Beanstalkが適切なアプローチではないかもしれないと思います。

関連する問題