CodeBuildでdocker build時にCannot connect to the Docker daemon…

スポンサーリンク

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はで出来ないという理由でした。

特権モードの設定はコンソールだとこの画面にあります。
(編集 > 環境 > イメージの上書き を押すと出てきます)

CodeBuild特権モード設定

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 デーモンに接続できません」)

コメント