我想用OpenJDK 17创建一个码头映像,但是它将通过添加我们公司的证书来修改。
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创建了这个映像,但是当我试图构建我们的项目时,它就打印出来了。
sun.security.provider.certpath.SunCertPathBuilderException: PKIX路径生成失败:
无法找到指向请求目标的有效证书路径
我在Gradle映像中检查了OpenJDK,它不包含证书。我在OpenJDK 11中使用了同样的方法,一切都很好。
有人能告诉我是怎么回事吗?
发布于 2022-05-09 08:58:14
通过以下措施解决了这一问题:
运行apt-get udpate
如果您使用的是ansible:
- name: Run the equivalent of "apt-get update"
apt:
update_cache: yes然后是apt-get install ca-certificates-java ca-certificates
如果您使用的是ansible:
- name: Install ca-certificates-java and ca-certificates
apt:
pkg:
- ca-certificates-java
- ca-certificateshttps://stackoverflow.com/questions/70670518
复制相似问题