在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。

  1. 创build一个新的图像并覆盖JVM系统属性。

    您通常会根据您使用的原始Dockerfile创build一个新的Dockerfile并在其中进行更改。 您可以使用JAVA_OPTSCATALINA_OPTS

     FROM tomcat:8-jre8 ENV CATALINA_OPTS -Dsecurerandom.source=file:/dev/urandom 
  2. 在运行时在现有图像中设置JVM系统属性。

    这将使用docker run 。 只需传递-e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom" 。 就像是:

     docker run -e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom" tomcat:8-jre8 
  3. 创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