1 日に 5 ~ 10 回デプロイする場合、デプロイするたびに Docker イメージを完全に再構築してプッシュすることは本当に実用的ですか?
CircleCI のContinuous Integration and Delivery with Dockerに記載されている利点を認めます。つまり、次のとおりです。
Elastic Beanstalk では、ビルドされたイメージの代わりに Dockerfile と関連するソース コードをデプロイすることもできますが、CircleCI でイメージを事前にビルドし、その上で何らかの形式の検証を実行すると、ビルド環境を削除するため、デプロイをより決定論的にすることができます。テストと本番の間で異なる変数として。
ただし、すべての依存関係とソース コードを含めると、完全にビルドされた webapp イメージは 1 GB 近くになります。ビルド間で実質的に 99% が変わらない場合、最大 200GB/月 (つまり、毎日 10 コミット、継続的にデプロイ) をデプロイすることが実際的であるかわかりません。つまり、機能を追加するために変更された HTML、JS、または CSS の 1,000 分の価値があるだけかもしれません。Docker イメージにほとんど変更されないソフトウェアが含まれ、残りはバンドルの一部として圧縮されるアプローチを好みます。これにより、自己完結型の展開ファイルが作成されますが (ダウンロードを必要とする依存関係がなくなります)、ビルド時間と帯域幅が大幅に削減されます。