🐳
ローカルでTestcontainers使用時にコンテナが作成できずにエラーになった
はじめに
Testcontainersを使ってRepositoryのインテグレーションテストを書こうとしたときに、コンテナが作成されずにエラーが発生しました。
このエラーの解決策をログとして残しておきます。
環境情報
Server: Docker Desktop 4.24.2 (124339)
Engine:
Version: 24.0.6
API version: 1.43 (minimum version 1.12)
Go version: go1.20.7
Git commit: 1a79695
Built: Mon Sep 4 12:31:36 2023
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.6.22
runc:
Version: 1.1.8
GitCommit: v1.1.8-0-g82f18fe
docker-init:
Version: 0.19.0
GitCommit: de40ad0
エラー情報
Testcontainersを使ったテストを実行したときに発生したエラーは以下の通りです。
Exception in thread "zio-fiber-" java.lang.IllegalStateException: Previous attempts to find a Docker environment failed. Will not retry. Please see logs and check configuration
解決策
/var/run/docker.sock
が存在するか確認するとソケットがなかったので、以下のようにユーザー所有のディレクトリのソケットのシンボリックリンクを作ることで解決しました。
sudo ln -s $HOME/.docker/run/docker.sock /var/run/docker.sock
以下のコメントによると、だいぶ前にユーザーフレンドリーにするためにユーザ所有のディレクトリにソケットを作るようになっていたようです。
Thanks for the report! We're trying to make Docker Desktop more userspace-friendly (e.g., fewer root privileges). As part of that, we're migrating the sockets to user-owned directories rather than root-owned directories (like /var/run). Desktop 4.13 no longer installs a socket under /var/run.
Discussion