DVAデプロイ

開発チームはAWS CodeBuildを使用してDockerイメージをビルドし、Amazon ECRにプッシュするCI/CDパイプラインを構築しています。Dockerイメージのビルドコマンド (`docker build`) と、ECRへのプッシュコマンド (`docker push`) は、`buildspec.yml` のどのフェーズ(phases)に記述するのがベストプラクティスとして最も適切ですか。

A
docker build を build フェーズに、docker push を post_build フェーズに記述する。
✓ 正解
ビルド処理を build フェーズ、完了後のプッシュ処理を post_build フェーズに記述するのが標準的かつ推奨される構造です。
B
両方のコマンドをまとめて pre_build フェーズに記述する。
pre_build フェーズは、ECRへのログイン(aws ecr get-login-password)など、ビルド前の準備処理を記述する場所です。
C
docker build を install フェーズに、docker push を build フェーズに記述する。
install フェーズは、ビルド環境に必要なランタイムやパッケージのインストールに使用されるため、ビルド本体を記述するのは不適切です。
D
両方のコマンドをまとめて post_build フェーズに記述する。
post_build はビルド完了後の後処理用です。ビルド自体は build フェーズで行うべきです。

解説

AWS CodeBuildの `buildspec.yml` には主に `install`, `pre_build`, `build`, `post_build` のフェーズがあります。ベストプラクティスとして、実際のビルド処理(`docker build`など)は `build` フェーズで行い、そのビルドが成功した後に実行すべきアーティファクトの保存やレジストリへのプッシュ処理(`docker push`など)は `post_build` フェーズに記述します。これにより、ビルド失敗時にはプッシュ処理がスキップされ、フェーズごとの役割が明確になります。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
DVA の問題一覧に戻る