dockerfile如何定义可变的配置文件?

比如有一个业务程序,其中有个Conf文件,里面有服务ip,数据库地址的一些配置,如何使其可以在运行容器的时候进行指定?还是说必须单独一个配置文件,然后运行容器的时候将新的配置文件拷贝进去?

我现在了解到一种做法是,(以python为例)
写一个python脚本,在Dockerfile中运行,这样需要镜像的环境支持python
主要内容就是,使用os.environ获取环境变量(假设是MYVAR)
然后把配置文件中对应想修改的参数改成{var} 加上双括号
然后如 osdict = os.environ
myvar = os.dict.get('MYVAR',缺省值)
with open(配置文件) as fp:

使用format方法格式化var=myvar

阅读 5.9k
3 个回答

这个一般放在.env中,不放在Dockerfile

镜像里放配置文件不得于镜像的移植,配置文件还是挂载或者环境变量传入 或者使用命令行参数。 建议使用kubernetes里面的configmap是合理的配置管理方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题