CodeBuildでdocker buildをbuildspec.yml内に書いてコンテナイメージをビルドしようとしたら、以下のようなエラーが出ました。
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因を調べたところ、CodeBuildの環境設定で特権モードをオンにしないとdocker buildはで出来ないという理由でした。
特権モードの設定はコンソールだとこの画面にあります。
(編集 > 環境 > イメージの上書き を押すと出てきます)
CDKの場合、aws_codebuild.Projectに渡すProjectProps内のenvironment: { privileged: true }で設定できます。
(以下はCodePipeline用のPipelineProjectの例です)
const buildProject = new codebuild.PipelineProject(this, 'BuildProject', {
cache: codebuild.Cache.local(codebuild.LocalCacheMode.DOCKER_LAYER),
environment: {
buildImage: codebuild.LinuxBuildImage.AMAZON_LINUX_2_4,
computeType: codebuild.ComputeType.SMALL,
privileged: true, // ←これ
},
(略)
参考
Error: “Cannot connect to the Docker daemon” when running a build (ビルドの実行時に「Docker デーモンに接続できません」)
コメント