1.编写docker-compose.yml文件
version: '3'
services:
docker_jenkins:
restart: always
image: jenkins/jenkins:lts
container_name: jenkins
environment:
- TZ=Asia/Shanghai
ports:
- '8080:8080'
- '50000:50000'
volumes:
- ./data/:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
2.到docker-compose.yml所在的目录执行以下命令
docker-compose up -d
jenkins容器启动异常
在执行完docker-compose up -d
,后使用docker ps
查看容器的运行情况,发现jenkins启动异常。
经过docker logs 容器ID
发现
touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied
Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
这个为的出现是因为jenkins
容器的当前用户:是jenkins
而且/var/jenkins_home
目录是属于jenkins
用户拥有的而当映射本地数据卷时,/var/jenkins_home
目录的拥有者变成了root
用户,所以当jenkins
用户的进程访问/var/jenkins_home
目录时,会出现 Permission denied
。发现问题之后,相应的解决方法也很简单:把当前目录的拥有者赋值给uid 1000
,再启动jenkins
容器就一切正常了。
sudo chown -R 1000 data