8

我有一个基于Distroless的 Java 应用程序容器化(docker) ,我想在 JVM 的存储中添加一个 SSL 证书。

我看到一个选项,例如使用 Docker 的RUN命令使用 Java 选项将 SSL 证书导入 JVM 存储keytool,但由于 Distroless 不附带 Shell,我无法使用 RUN 命令。

有没有将 SSL 证书添加到cacerts以 Distroless 作为基本映像的 -Java 的最佳方法?

4

1 回答 1

5

我们可以使用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"\
]

请务必根据您的需要调整命令!

于 2019-04-19T13:41:25.997 回答