最近配置jenkins打包boot项目的时候,出现了一个问题:

xxxx is not a directory on the Jenkins master (but perhaps it exists on some agents:

在这里插入图片描述
现在的jenkins docker容器版本内置的都是jdk17的版本,我们项目是jdk8的项目想到可能是不兼容,
后来在docker容器中安装了一个jdk1.8,仍然没有解决问题。
jenkins全局配置,jdk管理这里看到 还是报着黄线,仍然是不可用的。

在这里插入图片描述

有说法是制作容器的时候需要 需要做一下挂载,宿主机的jdk 跟 docker容器 做一下挂载,这样是可以解决问题。
比如由:

docker run -itd -p 9989:8080 -p 50000:50000 --name lgnjenkins --privileged=true -u=root  -v /home/jenkins/jenkins_home:/var/jenkins_home  jenkins/jenkins:lts

改成:

docker run -itd -p 9990:8080 -p 50001:50000 --name jenkinstlm --privileged=true -u=root  -v /home/jenkins/jenkins_home1:/var/jenkins_home  -v /www/server/kafka/java/jdk1.8.0_371/:/jdk/jdk1.8.0_371  jenkins/jenkins:lts

但是我这个jenkins容器已经制作好了,插件都下载好了,插件源也都配置好了,其他项目也配置好了,再做一个岂不是重新麻烦吗。

后来想了一下 既然 -v挂载可以 把宿主机的jdk cp进到容器里面是不是也可以呢。

查看宿主机java安装目录:
ubantu:

update-alternatives --list java

centos:

which java

进入容器 建一个jdk的文件夹,把宿主机的jdk目录cp到容器里面

docker cp /www/server/kafka/java/jdk1.8.0_371 lgnjenkins:/jdk/jdk1.8.0_371

在这里插入图片描述
居然是可以的。

在这里插入图片描述
顺利打包。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐