jenkins版本2.306因云盾检测出应急漏洞Jackson 最新反序列化漏洞(CVE-2019-14361和CVE-2019-14439)【版本检测】,因此整改迁移至docker,当然按照自己习惯也可以升级新版本或者打补丁方式,操作方式不限

docker镜像

1
2
3
4
5
6
7
8
拉取镜像(拉取后版本也是2.306)
[root@10.1.74.109 ~]# docker pull jenkins/jenkins:latest

创建挂载文件
[root@10.1.74.109 ~]# mkdir /home/jenkins_home/

运行容器
[root@10.1.74.109 ~]# docker run -itd --name jenkins -p 8081:8080 --restart=always -e TZ="Asia/Shanghai" -e JENKINS_OPTS="--prefix=/jenkins" -e JENKINS_ARGS="--prefix=/jenkins" -v /home/jenkins_home/:/var/jenkins_home 72b4a8d8d158

传送门: docker-commpose-jenkins


  • -restart=always 自启动容器
    TZ=”Asia/Shanghai” 设置上海时区
    -e JENKINS_OPTS=”–prefix=/jenkins” -e JENKINS_ARGS=”–prefix=/jenkins” 设置访问路径
    如果不设置/jenkins访问路径使用nginx反向代理会报错404

正常升级拷问文件

  1. jobs 项目目录
  2. plugins 插件目录
  3. users 用户目录
  4. config.xml 配置文件

拷贝数据文件

  • 我这里因为插件目录下jar包存在漏洞,为了保险将/var/lib/jenkins下所有的文件(除了plugins插件目录)都拷贝至容器挂载目录/home/jenkins_home/

upload successful

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@10.1.74.109 jenkins]# pwd
/var/lib/jenkins
[root@10.1.74.109 jenkins]# \cp ./*.xml /home/jenkins_home/

查找当前目录非plugins并且为目录复制到/home/jenkins_home/
[root@10.1.74.109 jenkins]# find ./ -type d -a ! -name plugins \cp -r {} /home/jenkins_home/ \;

重启容器
[root@10.1.74.109 jenkins]# docker restart jenkins

登陆密码查看
[root@10.1.74.109 jenkins_home]# pwd
/home/jenkins_home
[root@10.1.74.109 jenkins_home]# cat secrets/initialAdminPassword
9a3a6be6d64565886e1

登陆页面

http://localhost:8081

修改admin密码

upload successful

upload successful

重新下载所需插件

  • 因为没有将plugins目录拷贝容器,所有容器启动后有些功能不可用,需要重新下载插件,比如SSH 、gitlab、color等,如果不拷贝插件目录就要知道用到的插件后面下载就ok。

重新授权服务密码

  1. 构建项目报错

upload successful
2. 将所有配置服务器密钥重新授权
系统管理》》Manage Credentials》》全局凭据》》重新授权密码

upload successful
3. SSH remote hosts 服务连接认证

upload successful

修改代理路径

upload successful