1.Docker image 自己创建的一个窍门
通常都是从dockerhub 上直接拉取docker 镜像,但有些时候因为有一些版本和参数的微调,一些事先要安装的工具需要等都需要追加,如果能找到初始的dockerfile 再修改就比较方便。
通常docker image 的dockerfile 都在github 上
例如:
jenkins/jenkins 的docker image 可以从docker hub 上拉取,其原始版本的dockerfile 可以到以下repo 找到
https://github.com/jenkinsci/docker/tree/quickstart
官方的docker image 通常有很多版本,不同的os对应不同版本
2.在centos 上用下载jenkins.war再安装的方式搭建jenkins 作为作为service 提供 有两个比较重要的地方要注意。
- jenkins 中对jenkins user 的权限规定比较特殊,安装的时候需要root 和 jenkins:jenkins 两套切换,原因是在jenkins server 上run job 的user在系统中默认都是jenkins,其workspace,root也不可以access,不可执行。
- jenkins 作为service run,container 是不具备这个功能的,(以前在autohealing 的时候也遇到,run nginx的方式和普通container 不同)
container 中不能执行systemctl 等命令,如果需要执行的话,在docker run 的时候要制定 --privileged=true 并且要用到/sbin/init
在jenkins 的这个dockerfile 中,用/sbin/tini 运行,这个程序似乎是专门处理这类service,而无需docker 用privilege方式运行。
3.jenkins 如果和website 在一起,需要用反向proxy 做一下代理,方法可以参考以下:
https://github.com/maxfields2000/dockerjenkins_tutorial/blob/master/tutorial_06/jenkins-master/Dockerfile-Centos7
其他参考文献:
- https://stelligent.com/2017/04/13/containerizing-jenkins-with-docker-and-centos/
- https://blog.51cto.com/cloumn/blog/1790
- https://linuxize.com/post/how-to-install-jenkins-on-centos-7/
补充:
安装git 2.22 一篇有用的参考·
安装内容已经集成在
https://github.com/xieheng0915/jen27-centos7
网友评论