docker安装jenkins并实现CICD流程
本文目录
- docker安装jenkins并实现CICD流程
- 安装命令
- 初始化设置
- 更新jenkins及插件
- 更新jenkins版本
- 更新插件
- 创建第一个任务
- 修改配置
- 插件更新中心
- 时区设置
安装命令
官方安装参考:https://www.jenkins.io/zh/doc/book/installing/
- 拉取
docker
镜像,使用jenkinsci/blueocean
docker pull jenkinsci/blueocean:latest
-
使用
docker
,win
环境下将\
换成^
docker run \ --name jks \ --privileged=true \ -u root \ -d \ -p 8121:8080 \ -p 50010:50000 \ -v /Users/xxx/project/jks:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean
-
使用
docker-compose
// docker-compose.yml version: '3' #定义版本 services: jenkins: container_name: jenkins image: jenkinsci/blueocean:latest user: root priveleged: true #开启特权 ports: #定义映射端口 - 8080:8080 - 50000:50000 volumes: #定义挂载卷 - /var/jenkins-data:/var/jenkins_home // - /usr/bin/docker:/usr/bin/docker - /var/run/docker.sock:/var/run/docker.sock
启动命令
docker-compose up -d
-
查看docker容器
初始化设置
docker容器启动较慢,一开始打开web网页的时候画面如下
Please wait while Jenkins is getting ready to work
过程中本地挂载的文件夹也会下载文件
进入docker容器内部查看log
docker exec -it jks /bin/bash
或使用命令
docker log jks
或使用docker desktop
出现如下字样表示初始化成功
2024-02-22 14:29:16 2024-02-22 06:29:16.820+0000 [id=54] INFO jenkins.InitReactorRunner$1#onAttained: Completed initialization
2024-02-22 14:29:16 2024-02-22 06:29:16.863+0000 [id=32] INFO hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
密码存储的位置如下,在上图的log中也可以查看到
docker logs jks
或
docker exec -it jks /bin/bash
cat /var/jenkins_home/secrets/initialAdminPassword
安装插件,选择安装推荐的插件
即可
等待安装,可能有一部分安装失败,一般是因为jenkins版本问题,需要进入主页面,更新后再安装,右下角选择【继续】即可
创建一个管理员账户
实例配置,不要使用localhost
,使用docker的宿主机地址:http://host.docker.internal:8121/
,这里是为了配置git
仓库的webhook
时,能够访问通,使用域名也可以
配置完成后【重启】jenkins
,使用刚刚注册的用户登陆
更新jenkins及插件
进入主页,可以看到右下角的Jenkins版本
更新jenkins版本
选择右上角橙色警示⚠️,查看配置插件,blueocean
镜像中的jenkins停留在2023年,版本为2.346.3
,这会导致很多插件报错,如下图
Mina SSHD API :: Core (2.12.0-90.v9f7fb_9fa_3d3b_)
Jenkins (2.361.4) or higher required
一直下拉,选择【自动升级】Jenkins
如果下拉没有升级,出现的画面如下
则回到主页面,选择【系统管理】,也可以找到升级
等待下载jenkins.war
完成后,重启镜像
再次进入,jenkins已更新,此时登陆页面也变了
更新插件
更新jenkins之后再更新插件,主页面,选择【系统管理】-【插件管理】
更新全部已经存在的插件
安装完再次重启jenkins镜像,登陆进入即可正常使用
创建第一个任务
主页面左侧【新建任务】
基础项目有Freestyle project
和 流水线(pipeline)
,选择创建pipeline
可以只设置一个hello world
的Jenkinsfile
点击应用和保存,跳转
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}
点击【立即构建】
选择构建历史,查看【Console Output】,查看构建
修改配置
插件更新中心
镜像地址
维护方 | 镜像中心地址 |
---|---|
Jenkins中文社区 | https://updates.jenkins-zh.cn/update-center.json |
清华大学 | https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json |
华为开源镜像站 | https://mirrors.huaweicloud.com/jenkins/updates/update-center.json |
方法一:web页面设置
【系统管理】-【插件管理】-【高级设置】
方法二:直接修改配置文件
配置文件在docker镜像内的位置:/var/jenkins_mount/hudson.model.UpdateCenter.xml
或宿主机映射都可以找到这个文件
打开文件,修改url
标签的内容即可
时区设置
默认是UTC时区标准时间,导致了jenkins的构建时间和宿主机差了8个小时
-
方法一:用户设置中选择时区
-
方法二:【Manage Jenkins】-【Script Console】,终端输入命令修改
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone','Asia/Shanghai')