在Dockerfile中更改Java“SecureRandom”
我正在使用jre8 tomcat的docker镜像,我不得不改变java环境中的一个选项,有可能在容器运行后执行ssh,然后改变它
securerandom.source =文件是:/ dev /随机
至
securerandom.source =文件是:/ dev / urandom的
内
根@ 112ecdd0b71f:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security
不过,我想在容器启动前自动进行,因为当前的设置需要大量的时间来启动tomcat。
这种改变有两种select。
-
创build一个新的图像并覆盖JVM系统属性。
您通常会根据您使用的原始
Dockerfile
创build一个新的Dockerfile
并在其中进行更改。 您可以使用JAVA_OPTS
或CATALINA_OPTS
:FROM tomcat:8-jre8 ENV CATALINA_OPTS -Dsecurerandom.source=file:/dev/urandom
-
在运行时在现有图像中设置JVM系统属性。
这将使用
docker run
。 只需传递-e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom"
。 就像是:docker run -e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom" tomcat:8-jre8
-
创build一个新的图像,并更改文件(不推荐)。
你也可以创build一个新的图像,只是做你最初的改变(虽然,我不是真的很喜欢在不需要的时候改变图像内的文件)。
FROM tomcat:8-jre8 RUN sed -i 's/file:\/dev\/random/file:\/dev\/urandom/' /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security