Docker镜像构建失败:解压Jar文件时提示jar命令未找到
问题解决:Dockerfile中执行jar命令提示"jar: not found"
问题原因
你使用的openjdk:11.0.7-jre-slim-buster是JRE(Java运行时环境)镜像,仅包含运行Java程序的必要组件,不包含jar这类开发工具——jar命令属于JDK(Java开发工具包)的一部分,因此在JRE镜像中会提示找不到该命令。
解决方案
方案1:切换为JDK基础镜像
将build阶段的基础镜像替换为对应版本的JDK镜像,即可直接使用jar命令:
FROM openjdk:11.0.7-jdk-slim-buster AS build # 保留你的其他命令 ... RUN mkdir -p target/exploded && (cd target/exploded; jar -xf ../*.jar)
方案2:使用unzip替代jar命令(无需换镜像)
由于jar文件本质是zip格式,可通过安装unzip工具来完成解压:
FROM openjdk:11.0.7-jre-slim-buster AS build # 保留你的其他命令 ... # 安装unzip工具(slim镜像默认未预装) RUN apt-get update && apt-get install -y --no-install-recommends unzip && rm -rf /var/lib/apt/lists/* # 用unzip解压jar包 RUN mkdir -p target/exploded && (cd target/exploded; unzip ../*.jar)
内容的提问来源于stack exchange,提问作者Diego Nieto
相关产品推荐
相关产品推荐

