最近一个 jenkins 的CI job gradle build, build 之后会做 test 其中的一个 test 是 会起docker 镜像 然后做测试, 但是遇到了如下报错
23:45:51.714 [LIFECYCLE] [class org.gradle.internal.buildevents.TaskExecutionLogger] > Task :rpg-ad-web-api:test
23:46:22.789 [DEBUG] [TestEventLogger] 23:46:22.786 [Test worker] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - Could not find a valid Docker environment. Please check configuration. Attempted configurations were:
23:46:22.789 [DEBUG] [TestEventLogger] 23:46:22.787 [Test worker] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - UnixSocketClientProviderStrategy: failed with exception TimeoutException (Timeout waiting for result with exception). Root cause LastErrorException ([13] Permission denied)
23:46:22.789 [DEBUG] [TestEventLogger] 23:46:22.787 [Test worker] ERROR org.testcontainers.dockerclient.DockerClientProviderStrategy - As no valid configuration was found, execution cannot continue
Jenkins 是以 进程的方式运行, docker 安装在同一台机器上上。
解决过程
首先将 jenkins 用户 添加到 docker 组
然后修改套接字权限
usermod -aG docker jenkins
sudo chown root:docker /var/run/docker.sock
sudo chown -R root:docker /var/run/docker
chmod 666 /var/run/docker.sock
问题解决