替换 spring/tomcat docker 映像中的占位符属性



我有一个Dockerfile,例如:

FROM tomcat:8.5
COPY webapp.war /usr/local/tomcat/webapps/
COPY conf /usr/local/tomcat/conf/
CMD ["catalina.sh", "run"]

conf包含许多类型的文件(.json、.xml、.properties(,其中有一些占位符,格式如下:${some.place.holder}

我想使用占位符构建映像,并为用户提供替换它们的可能性。

理想情况下,在运行映像时,他们应该能够给出一个新文件作为参数,例如:

some.place.holder=hello

实现这一目标的正确方法是什么?

如果你想用bash文件来设置所有的变量,你可以写set_env_var.sh

#!/bin/sh
export PLACEHOLDER1=value
export PLACEHOLDER2=value

并运行:

source set_env_var.sh

它将设置所有变量。

或者,您可以通过设置多个变量来运行任何命令,如下所示。例如。我想通过以下方式运行带有变量的 docker-compose 命令:

PLACEHOLDER1=value PLACEHOLDER2=value docker-compose up -d

最新更新