最近配置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
居然是可以的。
顺利打包。