Jenkins upgrade from 2.235 & 2.259 to 2.303.x

We are having different Jenkins instances running on different server. Most of our Jenkins instances are Docker container based. Current Jenkins instances are running on either 2.235 or 2.259, however we need to plan to upgrade Jenkins to version greater than 2.303.x.
I have some query related to this:

  1. What are the supported JAVA/JDK version for target Jenkins version supported like we are planning for 2.303.3.
  2. Identify any compatibility issues for build tools (e.g. maven) on respective target Jenkins versions
  3. I am using rpm to upgrade the jenkins so what are the steps?

So just FYI. Your running weeklies. Weeklies are not well tested between big version jumps. They are typically tested week to week.

My recommendation if you don’t upgrade often is to switch to an lts/stable release, reinstall all the same plugins, then copy over all the job data.

Failing that. Jenkins LTS Upgrade Guide might be useful, but it’s only written between lts releases

Actually re reading your post you might be aware of some of that.

  1. java 8 and 11 are still supported. With 11 being recommended these days
  2. the only time Jenkins is natively calling maven is the really really old maven job types. After that it’s up to you and your scripts
  3. see upgrade guide

Using rpm to upgrade Jenkins is inconsistent with Docker container based images. If you’re running from a container, you should upgrade by using a new base image of Jenkins. If you’re running the rpm package, it does not support running as a container. It runs the jenkins.war file as a Linux service, without any Docker container.

Guidance on switching from weekly to LTS is available at

While upgrading jenkins I am getting error
daemonize is needed by jenkins

See the Jenkins installation documentation for Red Hat and CentOS based distributions.

It says

The Linux installer for the long term support release depends on the daemonize program. The daemonize program is available from the “Extra Packages for Enterprise Linux (EPEL)”. Follow the EPEL installation instructions for your Linux distribution before installing the Jenkins LTS.

1 Like

Is it available for Java 8 ? Because I am using centos with jdk 8.

The daemonize program does not require Java.

Instructions on the daemonize dependency are included in the Jenkins 2.303.1 upgrade guide as well

1 Like

Okay Like in my project I am downloading the daemonize rpm in local and running in docker based container. Is there any way to use this dependency in container. Should I need to change my base OS image?
https://centos.pkgs.org/7/epel-x86_64/daemonize-1.7.7-1.el7.x86_64.rpm.html

are you using rpms inside of a container to run jenkins? that seems very overkill. There’s already existing published best practices docker images.

You can manually install whatever rpms you want inside of your image, but the only reason to do so is if your using the jenkins rpm inside your container, which would also mean your using systemd, which doesn’t feel right.

1 Like

@halkeye is right. Using systemd as the service and process control manager for a Docker image is overkill and wastes resources. It will install many system-level files that are not needed and will run processes that are not needed. There are rpm based systems (like CentOS 8) that intentionally do not provide a systemd in their Docker image.

Extend the Jenkins Docker image definition. Don’t use rpm inside a Docker image to install Jenkins.

1 Like