docker 运行jenkins及vue项目与springboot项目(二.docker运行jenkins为自动打包运行做准备)
docker 运行jenkins及vue项目与springboot项目:
1.已经安装docker
2.更改docker镜像源,并重启docker
`vi /etc/docker/daemon.json`
添加
{"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]}
然后重启
systemctl restart docker
3.制作jenkins镜像 且创建容器
ps:因为要用jenkins部署springboot项目,且使用docker运行,故jenkins要能使用宿主的docker,故需要自定义jenkins的镜像,若不需要使用宿主机的docker,则可以直接拉取docker库里的镜像运行
定义制作jenkins镜像的Dockerfile
#从docker镜像源中拉取jenkins/jenkins镜像,在该基础上制作自己的镜像
FROM jenkins/jenkins
USER root
ARG dockerGid=999
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group
USER jenkins
在Dockerfile文件夹处 创建镜像
docker build -t my-jenkins .
创建成功后运行
docker run --name jenkins -p 9090:8080 -p 50000:50000 -v /etc/localtime:/etc/localtime -v /home/docker/jenkins/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -d my-jenkins
--name jenkins 指定容器名称
-d 后台运行
-p 端口映射 将宿主 9090映射为docker 8080
-v /home/docker/jenkins/jenkins_home:/var/jenkins_home 将本机/home/docker/jenkins/jienkins_home映射为docker /var/jenkins_home
-v /etc/localtime:/etc/localtime 时区同步
-v /var/run/docker.sock:/var/run/docker.sock 映射 为了让jenkins能够使用宿主的docker命令
-v $(which docker):/usr/bin/docker 映射 为了让jenkins能够使用宿主的docker命令
-v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 映射 为了让jenkins能够使用宿主的docker命令
4.docker ps -a
若未运行,则查看日志
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_home文件夹所有者及所属组为1000(docker的用户及组)
chown -R 1000:1000 /home/docker/jenkins/jenkins_home