gpt4 book ai didi

java - 更改 Dockerfile 中的 Java "SecureRandom"

转载 作者:行者123 更新时间:2023-12-02 02:54:35 25 4
gpt4 key购买 nike

我使用的是tomcat的docker镜像和jre8,我必须在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。

最佳答案

此类更改有两种选择。

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

    您通常会根据您使用的原始文件创建一个新的 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

关于java - 更改 Dockerfile 中的 Java "SecureRandom",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43316935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com