Docker运行Alpine容器外部导入的JRE时提示java命令找不到

Docker运行Alpine容器外部导入的JRE时提示java命令找不到 #

问题描述 #

  1. jenkins (in docker) - 配置全局工具 - jdk - 自定义下载地址(文件来源于 oracle jdk-8u361-linux-x64.tar.gz)
  2. 配置完成后,测试 jenkins pipeline - 使用 tools(jdk8 和 maven3)
  3. 执行 mvn 时,报错,提示未找到 java 命令
  4. 检查 JAVA_HOME 环境变量,正确
  5. 检查 jenkins docker 容器,java 文件存在

报错原因 #

  1. jenkins 使用的镜像基于 Alpine Linux
  2. alpine 镜像使用的动态链接库不是 gun libc,而是 musl libc,无法启动下载的基于 gun libc 的二进制文件

解决方法 1 #

jenkins 镜像改用其他镜像

解决方法 2 #

jdk 包换成适配 Alpine Linux 的包

详细步骤:

  1. 进入下载页面: https://bell-sw.com/pages/downloads/#/java-17-lts (Spring官方推荐) 或者 https://adoptium.net/zh-CN/temurin/releases/ (Eclipse出品)
  2. 操作系统选择 Alpine Linux
  3. 下载所需版本的 jdk 包
2024年10月30日