【发布时间】:2020-02-16 22:36:32
【问题描述】:
我使用Dockerfile 为需要HTTPS 的网络应用创建图像。但是,我收到Certificate not imported, alias <my-cert-name> already exists Java 异常。当我尝试不使用Dockerfile 时,仅从命令行中,我能够删除现有别名并且export、import 工作。但不是Dockerfile。有任何想法吗?谢谢!
Dockerfile:
FROM openjdk:8-alpine
#Starting https and certs configuration
#Make directory for certs inside the container
RUN mkdir -p usr/app/ssl/certs/
#Copy certs from local to the container
COPY myWebApp/src/main/resources/PT/certificates/my-cert-name.jks usr/app/ssl/certs/
COPY myWebApp/src/main/resources/PT/certificates/trustStore.jks usr/app/ssl/certs/
#Export/Import certificate
RUN cd usr/app/ssl/certs/ && \
keytool -delete -alias my-cert-name -keystore my-cert-name.jks -storepass password123! && \
keytool -export -alias my-cert-name -keystore my-cert-name.jks -file my-cert-name.crt -storepass password123! && \
keytool -importcert -keystore trustStore.jks -alias my-cert-name -storepass password123! -file my-cert-name.crt -noprompt
#Ending https and certs configuration
RUN mkdir -p /usr/app/myweb
COPY myWebApp/target/myWeb.war /usr/app/myweb
CMD java -Xms512M -Xmx6144M -XX:MaxMetaspaceSize=3072M -jar /usr/app/myweb/myWeb.war
EXPOSE 8080
Docker 构建命令
>docker build -it test-https-image .
环境:
Using Docker desktop on windows 10.
提前致谢!
【问题讨论】:
-
什么是基础镜像? (你的 Dockerfile 的第一行:FROM 行)
-
您好 VonC,我添加了 Dockerfile。希望你现在能看到。谢谢!