[英]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.