在运行时将外部配置文件传递给Docker容器

8

我有一个scala sbt应用程序,并带有默认的application.conf配置文件。我构建了一个docker镜像以便通过docker运行该应用程序。如何在运行时替换docker容器中的默认application.conf?

2个回答

7
我建议使用基于环境变量的覆盖,而不是传递带有覆盖的application.conf文件,因为以下原因:
  • 从部署工具的角度来看,挂载配置文件的卷可能会很棘手;
  • 并非所有的配置管理工具(例如HashiCorp Consul)都支持HOCON,但管理环境变量几乎是一种标准。特别是如果它包含需要保护的机密信息;

所以,你可以这样做: 在你的应用程序conf中通过环境变量设置覆盖:

foo=default
foo={?FOO}

使用特定的覆盖项运行应用程序docker容器:
docker run ...
 -e foo=bar \
 ...

请参阅以下详细信息: 希望这有所帮助!

2
docker run ... \
  --volume=[[YOUR-HOST-PATH]]/application.conf:[[YOUR-IMAGE-PATH]]/application.conf
  ...

我们能否在运行时从本地主机传递配置文件到Docker容器/镜像,或者必须将其挂载到Docker上? - vkt
示例是运行时的。您只能通过挂载文件、使用环境变量或在启动期间让容器拉取配置来限制文件。 - DazWilkin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接