繁体   English   中英

Docker id 没有选择文件

[英]Docker id not picking the file

我有一个证书,试图将证书设置为“javax.net.ssl.keyStore”。

System.setProperty("javax.net.ssl.keyStore", "certs/certfile.p12");
System.setProperty("javax.net.ssl.keyStorePassword", "密码");

//( 完全限定路径类似于 src/main/resources/certs/certfile.p12 )

当我在本地运行时,这些属性工作正常,但在 docker 容器中,问题是,在 certs/certfile.p12 中没有这样的文件或目录。

我需要将该 certfile.p12 添加到 JAR 中的 javax.net.ssl.keyStore 中。 也接受替代解决方案。

注意:完全合格的路径在 JAR 中不起作用。

提前致谢。

将配置保留在图像之外是一种很好的做法(尝试)。 除了这提供了明显的灵活性(一个具有许多可能配置的图像)之外,这还提供了一些安全性,因为配置(例如证书)是在外部管理的(并且可能是安全的)。

您有 2 个选项:

  • 在创建|运行容器时将certfile.p12到卷中:
docker run \
.... \
--volume=path/to/local/certfile.p12:/path/to/image/certfile.p12 \
...
  • 不推荐(参见序言),您将certfile.p12包含在您的图像中。 这需要您创建一个新图像(需要 Dockerfile):
FROM original-image
...
ADD /path/to/local/certfile.p12 /path/to/image/certfile.p12
...

您的配置也需要设置password 将这个值从图像中外化也是一个很好的做法。 一种方法是使用环境变量,然后您必须从 Java 应用程序中获取该变量。 您可以设置变量:

docker run \
...
---env=PASSWORD=password
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM