总体方法来说,就是去Jenkins容器内,替换jenkins.war为最新版本或者需要版本的war包,然后重启容器即可

在这之前,使用docker-compose部署了docker,其中的脚本配置如下。

1. 安装Jenkins

docker-compose.yml

version: '3'
services:
  jenkins:
    image: jenkins
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - /var/jenkins/data:/var/jenkins_home

启动命令docker-compose up -d

2. 进入容器更新Jenkins版本

首先,进入容器,记得一定用root用户

docker exec -it -u root [container_id] /bin/bash

其次,执行命令查看java进程

jenkins@4e3e91f7c0d0:/$ ps -ef | grep java
jenkins      6     1  7 05:06 ?        00:01:32 java -jar /usr/share/jenkins/jenkins.war
jenkins    239   218  0 05:26 pts/0    00:00:00 grep java

这里就能发现,其实容器里面就是使用java启动了jenkins.war包,那么我们升级/usr/share/jenkins/jenkins.war就可以了。

3. 容器里面下载最新的war包

进入官网查看下载jenkins download
通过F12发现下载最新版本链接就是:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
然后可以直接在容器内通过wget命令下载jenkins.war包

root@4e3e91f7c0d0:/# cd /usr/share/jenkins/
root@4e3e91f7c0d0:/usr/share/jenkins# ls
jenkins.war  ref
// 备份原war包
root@4e3e91f7c0d0:/usr/share/jenkins# cp jenkins.war jenkins.war.2.60.3.bak
root@4e3e91f7c0d0:/usr/share/jenkins# ls
jenkins.war  jenkins.war.2.60.3.bak  ref
// 新建文件夹,存储新war包
root@4e3e91f7c0d0:/usr/share/jenkins# mkdir other-version
root@4e3e91f7c0d0:/usr/share/jenkins# ls
jenkins.war  jenkins.war.2.60.3.bak  other-version  ref
root@4e3e91f7c0d0:/usr/share/jenkins# cd other-version/
root@4e3e91f7c0d0:/usr/share/jenkins/other-version# ls
// wget下载新war包
root@4e3e91f7c0d0:/usr/share/jenkins/other-version# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war

然后就是等待,一个war包,大概63M

4. 删除原war包,使用新的替换即可
root@4e3e91f7c0d0:/usr/share/jenkins/other-version# cd /usr/share/jenkins
root@4e3e91f7c0d0:/usr/share/jenkins# rm jenkins.war
root@4e3e91f7c0d0:/usr/share/jenkins# cd other-version
root@4e3e91f7c0d0:/usr/share/jenkins/other-version# mv jenkins.war ../
5. 退出容器,重启容器
sudo docker restart jenkins
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐