我有一个基于Distroless的Java应用程序容器化(docker),我想在JVM的商店中添加一个SSL证书。
我看到一个选项,比如使用Docker的RUN命令使用Java keytool
选项将SSL证书导入JVM存储区,但由于Distroless没有Shell,我无法使用RUN命令。
是否有最好的方法将SSL证书添加到cacerts
-Java中,并将Distroless作为基本映像?
我们可以使用exec表单来编写不需要shell的命令。
FROM gcr.io/distroless/java@sha256:da8aa0fa074d0ed9c4b71ad15af5dffdf6afdd768efbe2f0f7b0d60829278630
COPY my.crt /tmp/my.crt
RUN [\
"/usr/lib/jvm/java-11-openjdk-amd64/bin/keytool",\
"-import",\
"-trustcacerts",\
"-cacerts",\
"-noprompt",\
"-storepass",\
"changeit",\
"-alias",\
"my",\
"-file",\
"/tmp/my.crt"\
]
务必根据您的需要调整命令!