我使用Docker部署了标准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"在阅读了大量这样的问题之后,我用gpasswd -a ${USER} docker测试了将根添加到停靠器用户组中,并验证容器中的用户是带有docker exec jenkins_deployer echo ${USER}的根。
当我尝试用"Docker =unix://var/run/docker.sock“在Jenkins中添加Docker访问时,我会得到"org.newsclub.net.unix.AFUNIXSocketException:权限被拒绝的错误消息(socket: /run/docker.sock)”
如何允许Jenkins访问docker.sock以自动部署Docker容器?
发布于 2019-07-15 12:58:38
我知道我迟到了两年,但我遇到了同样的问题,有了这个解决方案,我就省下了几个小时的工作。
因此,我需要部署一个Jenkins容器,它可以自动部署Docker容器。下面是我用来构建和运行的文件:
Dockerfile
FROM jenkins/jenkins:latest
USER root
RUN apt-get update -qq \
&& apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
RUN apt-get update -qq \
&& apt-get install docker-ce=17.12.1~ce-0~debian -y
RUN usermod -aG docker jenkinsdocker-compose.yml
version: '3'
services:
jenkins:
container_name: 'jenkins-container'
privileged: true
build: .
ports:
- '8080:8080'
- '50000:50000'
volumes:
- jenkins-data:/var/jenkins_home
restart: unless-stopped
volumes:
jenkins-data:然后,在这些文件所在的文件夹中运行以下命令:
docker-compose up当容器打开时,使用它在内部启动Docker:
docker exec -it --user root <CONTAINER_ID>
service docker start还有哇哦!可能有一些更优化的解决方案,但这对我来说现在很好。
现在,您可以在浏览器中访问<YOUR_IP>:8080,以访问可以运行Docker容器的全新Jenkins。
https://stackoverflow.com/questions/41875503
复制相似问题