在Dockerfile中更改Java“SecureRandom”

时间:2017-04-10 07:14:01

标签: java docker tomcat7 dockerfile

我正在使用tomcat的docker镜像和jre8, 我必须在java环境中更改一个选项,可以在容器运行后执行,ssh到它并更改

  

securerandom.source =文件是:/ dev /随机

  

securerandom.source =文件是:/ dev / urandom的

里面

  

根@ 112ecdd0b71f:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security

但是,我希望在容器启动之前自动执行此操作,因为当前设置需要花费大量时间来启动tomcat。

1 个答案:

答案 0 :(得分:2)

这些更改有两种选择。

  1. 创建新映像并覆盖JVM系统属性。

    您通常会根据您使用的原始Dockerfile创建新的JAVA_OPTS并在那里进行更改。您可以使用CATALINA_OPTSFROM tomcat:8-jre8 ENV CATALINA_OPTS -Dsecurerandom.source=file:/dev/urandom 之类的:

    docker run
  2. 在运行时在现有映像中设置JVM系统属性。

    这可以使用-e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom"完成。只需通过docker run -e CATALINA_OPTS="-Dsecurerandom.source=file:/dev/urandom" tomcat:8-jre8 。类似的东西:

    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
    
  3. 创建新图像并更改文件(不推荐)。

    您还可以创建一个新图像并进行最初进行的更改(但是,我不喜欢在不需要时更改图像内的文件)。

    $(document).on('click touchend', '.' + this.options.closeFancyboxButton, 
     this.closeModal.bind(this))