やったこと
- AWS CodeBuildでDockerイメージのビルドを実行
エラー内容
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
原因
解決法
- 下記手順に従い、CodeBuildの環境設定で特権モードにチェックをいれる
Error: "Cannot connect to the Docker daemon" when running a build (ビルドの実行時に「Docker デーモンに接続できません」)
By default, Docker containers are "unprivileged" and cannot, for example, run a Docker daemon inside a Docker container. This is because by default a container is not allowed to access any devices, but a "privileged" container is given access to all devices
デフォルトでは、Docker コンテナには「特権がありません」ので、たとえば、Docker コンテナ内で Docker デーモンを実行することはできません。これは、デフォルトではコンテナはどのデバイスにもアクセスすることを許可されていませんが、「特権」コンテナにはすべてのデバイスへのアクセスが与えられるためです。
とのことで、Dockerイメージのビルドを行うCodeBuildのコンテナは特権モードで動いていないようである。
そのため、コンテナを特権モードで起動する必要がある。