You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于jelastic/springboot:correttojdk-17.0.8.7.1构建镜像启动失败:文件不存在

问题解决思路

问题根源

jelastic/springboot:correttojdk-17.0.8.7.1 镜像对 java 命令做了封装,替换为自定义脚本,而脚本中依赖的 /java.orig 路径不存在,导致直接调用 java 命令启动容器时出错。

解决方案

方案1:直接调用原始JDK的java可执行文件

先通过以下命令确认基础镜像中原始java的具体路径:

docker run --rm jelastic/springboot:correttojdk-17.0.8.7.1 ls -la /usr/lib/jvm/

亚马逊Corretto 17的java可执行文件通常位于 /usr/lib/jvm/java-17-amazon-corretto/bin/java,修改Dockerfile的启动命令:

FROM jelastic/springboot:correttojdk-17.0.8.7.1
COPY build/libs/demo-0.0.1-SNAPSHOT.jar dockerimage.jar
EXPOSE 8080
CMD ["/usr/lib/jvm/java-17-amazon-corretto/bin/java", "-jar", "/dockerimage.jar"]

方案2:复用基础镜像的默认启动逻辑

先查看基础镜像的默认启动配置:

docker inspect jelastic/springboot:correttojdk-17.0.8.7.1 | grep -A 10 "Cmd"

如果基础镜像默认加载 /app.jar,可将你的jar文件复制到该路径,无需自定义CMD:

FROM jelastic/springboot:correttojdk-17.0.8.7.1
COPY build/libs/demo-0.0.1-SNAPSHOT.jar /app.jar
EXPOSE 8080

方案3:替换基础镜像的java脚本

若确认是基础镜像的java封装脚本问题,可在Dockerfile中替换为原始java命令:

FROM jelastic/springboot:correttojdk-17.0.8.7.1
COPY build/libs/demo-0.0.1-SNAPSHOT.jar dockerimage.jar
EXPOSE 8080
RUN mv /usr/bin/java /usr/bin/java.bak && ln -s /usr/lib/jvm/java-17-amazon-corretto/bin/java /usr/bin/java
CMD ["java", "-jar", "/dockerimage.jar"]

内容的提问来源于stack exchange,提问作者Emma Razafy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:53:14