docker部署的jenkins配置多jdk版本环境时,报错/var/jenkins_home/jdk-17.0.4/bin/java: No such file or directory

背景:jenkins默认jdk版本1.8,某个项目需要使用jdk17,但jenkins从官网在线安装的jdk最高版本只有jdk1.9,手动安装jdk17完成后,在jenkins容器内执行手动安装的jdk17时,报错/var/jenkins_home/jdk-17.0.4/bin/java: No such file or directory。

原因:因为jenkins容器的操作系统版本是Alpine Linux 3.16,因为alpine用的是musl libc,而不是glibc

解决办法:jenkins容器内安装glibc

wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.33-r0/glibc-2.33-r0.apk
apk add glibc-2.33-r0.apk
curl -Ls https://archive.archlinux.org/packages/z/zlib/zlib-1%3A1.2.9-1-x86_64.pkg.tar.xz -o libz.tar.xz && mkdir -p libz && tar -xf libz.tar.xz -C libz
mv libz/usr/lib/libz.so* /usr/glibc-compat/lib

在执行/var/jenkins_home/jdk-17.0.4/bin/java --version可以正常显示jdk版本信息

最后:jdk17安装完成后,在jenkins上全局工具配置jdk安装路径即可。

 

posted @   屠夫2022  阅读(1882)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示