【问题标题】:Change Java "SecureRandom" in Dockerfile在 Dockerfile 中更改 Java“SecureRandom”
【发布时间】:2017-04-10 07:14:00
【问题描述】:

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

securerandom.source=file:/dev/random

securerandom.source=file:/dev/urandom

里面

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

但是,我想在容器启动之前自动开启,因为当前设置需要很长时间才能启动 tomcat。

【问题讨论】:

标签: java docker tomcat7 dockerfile


【解决方案1】:

此类更改有两种选择。

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

    您通常会根据您使用的原始Dockerfile 创建一个新的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. 创建一个新图像并更改文件(不推荐)。

    您还可以创建一个新图像,然后只进行您最初所做的更改(不过,我真的不喜欢在不需要时更改图像中的文件)。

    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
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2012-08-28
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多