说明
- 基于容器来快速部署Jenkins
- jenkins版本使用LTS
- jenkins版本说明
- LTS(长期支持):每12周从常规版本流中选择,作为该时间段的稳定版本。 每隔 4 周,我们会发布稳定版本,其中包括错误和安全修复反向移植。
- Weekly(定期发布):每周都会发布一个新版本,为用户和插件开发人员提供错误修复和功能。
- jenkins官方镜像默认不带任何插件,启动的时候设置向导默认会下载最新的,可能跟LTS版本不兼容
- jenkins插件配置方法仅限于当前时间点,后面有变更可能会不适用
- 由于需要使用宿主机的Docker程序,因此容器运行的用户设置为root
- 通过传入
JAVA_OPTS
和JENKINS_OPTS
设置以下内容- 跳过初始化启动时的设置向导,跳过设置向导的话,jenkins会关闭安全功能,匿名用户可以做任何事,建议部署后打开安全功能
- 修改默认
update.json
地址 - 监听地址和监听端口
列出jenkins已安装的插件
1 | Jenkins.instance.pluginManager.plugins.each{ |
install-plugins.sh脚本说明
借助jenkins官方容器内置的install-plugins.sh和jenkins-support脚本下载插件,并且自动处理依赖
脚本内置的环境变量支持
1 | Environment variables: |
- 这里基本只需要声明
JENKINS_UC
和JENKINS_UC_DOWNLOAD
这两个环境变量即可
1 | export JENKINS_UC='https://mirrors.huaweicloud.com' \ |
- 如果是用来覆盖当前环境的jenkins插件,可以声明
REF
变量
1 | export REF="${JENKINS_HOME}" |
- 然后就是安装插件了
1 | install-plugins.sh localization-zh-cn:1.0.17 git:latest |
创建容器镜像
Dockerfile
- 指定环境变量,指向jenkins国内镜像源(这里用的华为云)
- 关于插件安装脚本说明,请看Preinstalling plugins
- 这里演示安装jenkins中文社区的插件和git插件
- 下载的插件会默认放在
/usr/share/jenkins/ref/plugins
1 | FROM jenkins/jenkins:lts |
构建容器
1 | docker build --force-rm --no-cache -t jenkins:lts-with-plugins . |
容器化部署jenkins
Docker启动
1 | docker run \ |
docker-compose启动
1 | jenkins: |
修改jenkins插件地址
1 | sed -e 's#http://updates.jenkins-ci.org/download#https://mirrors.huaweicloud.com/jenkins#g' \ |
部署到K8S
- 这里不用Helm部署,Helm部署的另起一文
调用阿里云的高效云盘作为数据盘
YAML文件如下
1 | --- |