jenkins更新升级

前言

jenkins更新迭代十分频繁,基本是一周一个小版本,这就导致我们很多与jenkins配套使用的扩展插件因为jenkins内核迭代而变的不可使用,因此,学会Jenkins升级就变的十分重要。

在之前的文章里我已经提到到jenkins升级部分的内容,之所以这次重新起一篇文章将这块再叙述一遍,是因为我在升级过程当中又发现了一些之前从未遇到过的坑,所以我决定将这部分单独拿出来尽可能详细的写一篇文章,便于后期的记录和学习。

下载war包

方法一:
jenkins系统管理,点击即可下载最新版本的war包
在这里插入图片描述

方法二:
jenkins下载官网:https://www.jenkins.io/download/
下载最新版本链接:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
所有的war包地址:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/

war包位置查看

方法一:
在这里插入图片描述
方法二:
进入容器后查找

docker exec -it -u root jenkins bash
find / -name jenkins.war

更新war包

备份更新之前的war包

docker exec -it -u root jenkins bash
root@ed883da9faab:/# cd /usr/share/jenkins
root@ed883da9faab:/usr/share/jenkins# mv jenkins.war jenkins.war.bak

将更新版本的war包下载到宿主机

rz
docker cp jenkins.war jenkins:/usr/share/jenkins/

重启jenkins

docker restart jenkins

更换war包之后,容器无法启动

首先,查看日志排查问题

docker logs -f --tail 300 456f

错误一:
更新之后的war包文件 损坏 / 不完整 或者 文件命名错误
重复更新操作之后重启即可

错误二:
日志报错 Error: Unable to access jarfile /usr/share/jenkins/jenkins.war

说明更新之后的war包只有只读权限,需要添加权限,这个时候因为容器无法启动,我们进不去容器内部。

docker容器其实是由容器镜像组成的(参考容器技术介绍之docker核心技术概述)我们可以直接在/var/lib/docker/overlay2/ 目录下找到对应镜像层下的jenkins.war文件。

可以直接使用 find 命令查找:

 find / -name jenkins.war
 /var/lib/docker/overlay2/bfe95ec2a58515c3da9eee23347742620b3b2f975a6fb484a4305db930b866ae/diff/usr/share/jenkins/jenkins.war
/var/lib/docker/overlay2/5b809bd27fd2999709efdfe34fa97b65c0a1c7ae0cb35d07ba7ef7fa0c2f5862/diff/usr/share/jenkins/jenkins.war

进入对应镜像层目录下将权限修改之后,再次重启镜像即可解决。

猜你喜欢

转载自blog.csdn.net/weixin_43587784/article/details/131562504