我有一个如下所示的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中添加这些属性?
答案 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