我想在运行时通过docker compose

时间:2017-04-19 06:47:37

标签: docker docker-compose

我把tomcat安装在一个容器里面,里面有应用程序配置文件。我想在运行时填充其中的值。 (在此之前,我不知道在构建图像时不能填充的值)

我正在使用docker-compose调用服务,我希望配置文件中的值通过我提供给docker compose的值替换为参数

像docker-compose up -e"运行时通过docker撰写的值#34;

 URL for server
 SERVERADD=https://{{value at run time via docker compose}}/{{index}} 

我可以通过环境变量或任何其他方式来完成此事吗亲切建议!!!

1 个答案:

答案 0 :(得分:0)

这通常是在图片中内置的ENTRYPOINTCMD脚本中完成的。

脚本检查环境变量,执行替换或其他所需的工作,然后继续像以前一样运行命令。

#!/bin/sh
if [ -n "$SOME_ENV" ]; then
  sed -i '' -e 's/^param=.*/param='"$SOME_ENV"'/' /etc/file.conf
fi
exec "$@"

需要将脚本添加到图像中,Dockerfile可以是:

FROM whatever
COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT [ "/entrypoint.sh" ]
CMD [ "run_server", "-o", "option" ]