I have a server which periodically I want to update. I've moved JENKINS_HOME directory to a separate disk volume. Configuration for server saved as yaml file CASC, jobs and history also stored inside the volume. And I run Jenkins server as a Docker container.
I expected that if I will provide an updated docker image with the new Jenkins version and updated plugins it will just load jobs and configuration and will work. And it did work for some time. But recently I stumbled on an error like this.
- Update required: commons-lang3 v3.x Jenkins Api Plugin (commons-lang3-api 3.12.0.0) to be updated to 3.12.0-36.vd97de6465d5b_ or higher
jenkins | at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:994)
jenkins | at hudson.PluginManager$2$1$1.run(PluginManager.java:542)
The issue is that plugins are also stored in JENKINS_HOME directory and a new Jenkins version in the docker image was not able to start with old plugins.
I expected that I will be able to tell Jenkins where to look for plugins so only jobs, config, history and other configurations will be loaded from the attached volume but Jenkins itself will use updated plugins from the inside image.
I've tried this property hudson.PluginManager.workDir
https://www.jenkins.io/doc/book/managing/system-properties/#hudson-pluginmanager-workdir but it is not working
Jenkins still trying to look inside JENKINS_HOME/plugins
My question is it possible to point Jenkins to directly with plugins, so it will not pay attention to JENKINS_HOME/plugins ?