如何在 Dockerfile 中设置 JVM 设置

PPC*_*PCC 8 jvm-arguments docker dockerfile

我有一个 Dockerfile 如下所示:

FROM tomcat:9.0.12-jre8
EXPOSE 8080
COPY app.war "$CATALINA_HOME"/webapps
Run Code Online (Sandbox Code Playgroud)

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

-DTOMCAT=Y
-Doracle.server=1234
-Doracle.url=1234
-Doracle.password=1234
...
Run Code Online (Sandbox Code Playgroud)

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

fre*_*ard 11

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

ENV JAVA_OPTS="-DTOMCAT=Y -DOracle.server=1234 [...]"
Run Code Online (Sandbox Code Playgroud)

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

$ docker run -e JAVA_OPTS="-DTOMCAT=Y -DOracle.server=1234 [...]" your_image:your_tag 
Run Code Online (Sandbox Code Playgroud)

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

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

如果您只为应用程序提供最低的资源要求,则这可以存在于 Dockerfile 中。