升级原因,插件版本太新,jenkins版本太旧,导致插件无法安装。
报错如下:
Some plugins could not be loaded due to unsatisfied dependencies. Fix these issues and restart Jenkins to re-enable these plugins.
Dependency errors:
Mina SSHD API :: Core (2.12.1-101.v85b_e08b_780dd)
Jenkins (2.387.3) or higher required
Oracle Java SE Development Kit Installer Plugin (73.vddf737284550)
Jenkins (2.361.4) or higher required
SnakeYAML API Plugin (2.3-123.v13484c65210a_)
Jenkins (2.361.4) or higher required
Jenkins各版本下载地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/
先备份数据:
war部署版
打开部署war包的地方,将下载的jenkins.war
替换掉原war
包,重启即可
Docker版:
将下载的jenkins.war
包上传到服务器,我上传的在/root
目录下
进入jenkins容器(命令中的jenkins为容器的名称,根据自己的实际名称进行更改,可以docker ps查看容器信息来获取容器名称)
docker exec -it -u root jenkins /bin/bash
查找jenkins位置
whereis jenkins
默认路径为/usr/share/jenkins
替换旧war包
docker cp /root/jenkins.war jenkins:/usr/share/jenkins/
重新启动容器
docker restart jenkins
jenkins版本对应jdk:
https://www.jenkins.io/doc/book/platform-information/support-policy-java/
截止至20241130最新版本jenkins镜像:
docker pull jenkins/jenkins
jenkins容器方式搭建:
docker run \
-u root \
--restart=always \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
-e JAVA_OPTS=-Duser.timezone=Asia/Shanghai \
jenkins/jenkins
默认情况下:
做数据持久化。
[root@jenkins ~]# docker volume inspect jenkins-data
[
{
"CreatedAt": "2024-11-30T15:14:28+08:00",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/jenkins-data/_data",
"Name": "jenkins-data",
"Options": null,
"Scope": "local"
}
]
插件安装失败换源:https://blog.csdn.net/m0_53022813/article/details/136989029
源:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
总结:容器jenkins平台版本创建的时候要用-v 参数做持久化,这样升级时,先将原先的容器停止、删除。新版本的容器使用旧容器的卷,这样数据就不会丢失。
具体见:https://www.cnblogs.com/hiyong/p/16705846.html
评论区