我正在使用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。
答案 0 :(得分:2)
这些更改有两种选择。
创建新映像并覆盖JVM系统属性。
您通常会根据您使用的原始Dockerfile
创建新的JAVA_OPTS
并在那里进行更改。您可以使用CATALINA_OPTS
或FROM tomcat:8-jre8
ENV CATALINA_OPTS -Dsecurerandom.source=file:/dev/urandom
之类的:
docker run
在运行时在现有映像中设置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
创建新图像并更改文件(不推荐)。
您还可以创建一个新图像并进行最初进行的更改(但是,我不喜欢在不需要时更改图像内的文件)。
$(document).on('click touchend', '.' + this.options.closeFancyboxButton,
this.closeModal.bind(this))