Jenkins 2.357 及 LTS 2.361.1之后的版本要求Java 11 或者 17,如果使用的是Java 8,要升级最新版本的Jenkins,就需要升级Java JDK版本,本文记录一下如何升级jenkins容器的Java版本。
环境说明
我的jenkins平台是使用docker容器进行安装的,所以,如果要升级Java版本,需要升级jenkins镜像中的Java版本,升级宿主机的jdk版本是没用的。
如果你的jenkins是直接安装在Linux服务器上的,可以直接升级服务器上的jdk,升级方法可参考Java环境安装配置步骤介绍。
我没有找到直接升级jenkins镜像中的Java版本的方法,所以我采用的方法是直接下载最新(jdk11)的jenkins docker镜像,然后重新创建容器。
如果你的数据是存储在容器中的,删除容器会导致数据也会删除,而我的jenkins容器数据挂载到了宿主机的磁盘目录,所以不用担心数据丢失的问题。
我的挂载目录:
1 | # docker volume inspect jenkins_test |
如果你的jenkins没有挂载,请谨慎使用容器删除命令。
下面介绍升级步骤。
Jenkins镜像升级
1. 删除当前jenkins容器
停止jenkins:
1 | $ docker stop jenkins |
删除jenkins容器:1
2
3
4
5$ docker rm jenkins
jenkins
$ docker start jenkins
Error response from daemon: No such container: jenkins
Error: failed to start containers: jenkins
2. 删除旧的jenkins镜像
1 | $ docker images | grep jenkins |
3. 下载最新jenkins镜像
Jenkins docker hub地址: https://hub.docker.com/r/jenkins/jenkins
1 | $ docker pull jenkins/jenkins |
4. 启动jenkins容器
之前搭建jenkins时创建的文件影射卷为jenkins_test:
1 | $ docker volume inspect jenkins_test |
创建并启动jenkins容器:
1 | $ docker run --name=jenkins -d -p 8080:8080 -p 50000:50000 -v jenkins_test:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai jenkins/jenkins |
查看jenkins容器中的Java版本:
1 | $ docker exec jenkins java -version |
可以看到已经升级成功了!
也可以在jenkins平台中查看,访问jenkins,进入系统信息页面:http://192.168.30.8:8080/systemInfo
Jenkins升级
jenkins升级参考Docker搭建持续集成平台Jenkins 。
本文标题:持续集成平台Jenkins:docker镜像升级
文章作者:hiyo
文章链接:https://hiyongz.github.io/posts/continuous-integration-for-jenkins-docker-images-upgrade/
许可协议:本博客文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请保留原文链接及作者。