本文主要介绍docker-jenkins安装、简易启用,以及讲述这个过程遇到的坑,特别是各种证书错误的问题。
在做IT开发过程中,经常要接触CI/CD的工具,比如Jenkins。
https://www.jenkins.io/download/
根据需要自行选择
为啥我个人强烈建议下载Docker版jenkins?
拉取docker
docker pull jenkins/jenkins
docker images
创建docker-jenkins的数据目录
mkdir -p /home/ldeng/code/Docker/home/jenkins_home/
chmod 777 /home/ldeng/code/Docker/home/jenkins_home/
运行docker-jenkins
docker run --rm -p 8082:8080 -p 50000:50000 \
-v /home/ldeng/code/Docker/home/jenkins_home/:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
--name lucasd-jenkins \
jenkins/jenkins:latest
/etc/localtime是同步外部系统时区。
启动后记住管理密码:
/var/jenkins_home/secrets/initialAdminPassword
然后http://localhost:8082 登录
由于亲自踩过坑,所以在此直接说答案:
安装“skip-certificate-check”插件
记住用户名一定要写jenkins
貌似可以了?还是错了!
docker-jenkins里面根本没有一些常用的证书以及内网的证书。
docker里面的网络环境和本地不一致, 加上–network host
docker run --network host
其次,不仅仅是google官方的库,还有功能内部gitlab的证书也提示错误,于是想办法怎么默认安装上证书。
经过努力,终于找到Ubuntu通用的证书路径为:
/etc/ssl/certs/
/usr/share/ca-certificates/
最终找到了解决方案:
docker run --network host --rm -p 8080:8080 -p 50000:50000 \
-v /home/ldeng/code/Docker/home/jenkins_home/:/var/jenkins_home \
-v /etc/localtime:/etc/localtime \
-v /etc/ssl/certs/:/etc/ssl/certs/ \
-v /usr/share/ca-certificates/:/usr/share/ca-certificates/ \
--name lucasd-jenkins jenkins/jenkins:latest
该映射的需要映射,比如docker中没有ping工具,也可以这样:
-v /usr/bin/ping:/usr/bin/ping
在我看来,如果是公司内部用于开发的docker,需要默认集成如上证书/时区/binary等,而不是让开发者去踩坑。
但考虑本文用的是官方的docker jenkins,所以映射也在所不辞。