開発チームがAWS CodeBuildを使用してDockerイメージをビルドし、Amazon ECRにプッシュするCIパイプラインを構築しています。buildspec.ymlのbuildフェーズにdocker buildとdocker pushコマンドを記述しましたが、ビルド実行時に「Cannot connect to the Docker daemon at unix:///var/run/docker.sock」エラーが発生してビルドが失敗します。この問題の原因と対処法として最も適切なものはどれですか?
「Cannot connect to the Docker daemon」エラーは、CodeBuildのビルド環境内でDockerデーモンが起動していないために発生します。CodeBuildはコンテナ環境でビルドを実行しますが、コンテナ内でDockerを使用するには「特権付き(Privileged)」モードの有効化が必要です。PrivilegedモードはCodeBuildプロジェクトの「環境」設定で有効化でき、これによりDockerデーモンが起動しdocker buildおよびdocker pushが実行可能になります。AWS標準CodeBuildマネージドイメージにはDockerがプリインストールされているため、別途インストールは不要です。
選択肢AのDockerインストール不足は、AWS標準CodeBuildマネージドイメージにはDockerが既に含まれているため今回の原因にはならない。
選択肢CのECR認証コマンド不足は「no basic auth credentials」エラーの原因であり、「Cannot connect to the Docker daemon」とは別の問題である。
選択肢DのVPC関連IAM権限不足はCodeBuildをVPC内で実行する際のネットワーク設定に関わる問題であり、Dockerデーモンへの接続エラーとは無関係である。