我想用 OpenJDK 17 创建一个 docker 镜像,但它会通过添加我们公司的证书来修改。
Dockerfile:
FROM openjdk:17
COPY Certs /certs
RUN /certs/load_certs.sh \
&& rm -rf /certs
“Certs”目录包含所有必要的证书。这工作正常。我检查了图像中的 JDK 17 是否包含证书,是的,它们在那里。然后我想用 Gradle 7.3.3 创建一个镜像,它将使用提到的 OpenJDK 17 镜像和所有证书。
FROM centos:8
# some commands here
#jdk
COPY --from=nexus.ourcompany.com:4402/aliter/open-jdk17 /usr/java/openjdk-17 /etc/jdk17
ENV JAVA_HOME=/etc/jdk17
ENV PATH="${JAVA_HOME}/bin:${PATH}"
# some commands here
#gradle
RUN cd /tmp \
&& curl --insecure -O https://nexus.ourcompany.com/repository/ourcompany-maven-public/org/gradle/7.3.3/gradle-7.3.3-bin.zip \
&& cd ..
RUN unzip /tmp/gradle-7.3.3-bin.zip -d /etc \
&& rm -rf gradle-7.3.3-bin.zip
ENV PATH="/etc/gradle-7.3.3/bin:${PATH}"
RUN gradle -v
# some commands here
我使用 Gradle 和 OpenJDK 创建了图像,但是当我尝试构建我们的项目时,它会打印出来
PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径
我检查了 Gradle 映像中的 OpenJDK,它不包含证书。我对 OpenJDK 11 使用了相同的方法,一切正常。
谁能告诉我出了什么问题?