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

如何解决Java 11 Docker镜像中keytool的cacerts文件未找到错误?

解决Java 11 Docker镜像中cacerts路径错误问题

问题根源

Java 9及后续版本(含Java 11)重构了JDK目录结构,移除了独立的jre子目录。你的Dockerfile仍沿用Java 8时代的${JAVA_HOME}/jre/lib/security/cacerts路径,导致文件找不到。

修复方案

修改Dockerfile中的RUN命令,删除路径里的jre层级:

RUN ${JAVA_HOME}/bin/keytool -noprompt -keystore ${JAVA_HOME}/lib/security/cacerts -storepass changeit -importcert -alias aaa-ca-full -file /tmp/cacerts/aaa_ca1_full_chain.pem

验证步骤(可选)

  • 先确认基础镜像中的Java目录结构:
    docker run --rm docker.repo1.aaa.com/ecap/base-images/centos-8-openjdk11:latest ls -l ${JAVA_HOME}/lib/security/
    
    执行后应能看到cacerts文件。
  • 检查基础镜像中${JAVA_HOME}环境变量是否正确设置,避免路径引用错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:31:07