我使用docker-compose部署了标准的Jenkins Docker镜像,并使用以下配置:
deployer:
image: jenkins
volumes:
- "/mnt/jenkins:/var/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- "2375:2375"
- "8080:8080"
- "50000:50000"
在阅读了许多SO问题后,我测试了将Root添加到docker用户组中的方法,使用命令 gpasswd -a ${USER} docker
并验证容器内的用户为Root,使用命令 docker exec jenkins_deployer echo ${USER}
。
当我尝试在Jenkins UI中添加Docker访问权限,设置"Docker URL = unix:///var/run/docker.sock"时,出现以下错误信息:“org.newsclub.net.unix.AFUNIXSocketException: Permission denied (socket: /run/docker.sock)”。
如何给Jenkins访问docker.sock的权限以自动部署Docker容器?
privileged: true
或network_mode: host
选项吗?当尝试共享 Docker 套接字时,我偶尔需要其中一个或两个选项。此外,您可能需要确保您的 jenkins 用户有权限访问/var/run/docker.sock
。默认情况下,即使使用 root 用户启动服务,Jenkins 也不会以 root 用户身份运行。 - Nick Settje