如何在Dockerfile中设置JVM设置

时间:2019-07-22 21:22:12

标签: docker dockerfile jvm-arguments

我有一个如下所示的Dockerfile:

FROM tomcat:9.0.12-jre8
EXPOSE 8080
COPY app.war "$CATALINA_HOME"/webapps

我需要设置一些JVM属性,如下所示:

-DTOMCAT=Y
-Doracle.server=1234
-Doracle.url=1234
-Doracle.password=1234
...

如何在Dockerfile中添加这些属性?

2 个答案:

答案 0 :(得分:0)

您只需在Dockerfile中将JAVA_OPTS值设置为构建时所需的值即可:

ENV JAVA_OPTS="-DTOMCAT=Y -DOracle.server=1234 [...]"

如果您不修改官方tomcat映像中的CMD,也可以将其设置为运行时:

$ docker run -e JAVA_OPTS="-DTOMCAT=Y -DOracle.server=1234 [...]" your_image:your_tag 

请参阅:https://github.com/docker-library/tomcat/issues/8

考虑到示例中提供的选项,最好选择第二个版本(从安全角度考虑,主机,端口和密码信息不应留在Docker映像中)。

如果仅在资源方面为应用程序提供最低要求,则可以将其保存在Dockerfile中。

答案 1 :(得分:0)

您显示的用例看起来更像是环境变量。您可以让您的应用程序从env变量中读取这些值,然后可以在运行时进行设置。

$ docker run --env MYVAR2 = foo