我有一个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