【问题标题】:pass external config file to docker container at runtime在运行时将外部配置文件传递给 docker 容器
【发布时间】:2020-06-23 22:03:43
【问题描述】:

我有一个 scala sbt 应用程序并且有一个默认的 application.conf。 我构建了一个 docker 镜像来通过 docker 运行这个应用程序。 如何在运行时替换 docker 容器中的默认 application.conf

【问题讨论】:

    标签: scala docker docker-compose dockerfile sbt-native-packager


    【解决方案1】:

    我建议不要使用覆盖传递 application.conf 文件,而是使用基于环境变量的覆盖,原因如下:

    • 从部署工具的角度来看,使用配置文件安装卷可能会很棘手;
    • 并非所有配置管理工具(例如 HashiCorp Consul)都提供 HOCON 支持,但管理环境变量几乎是一种标准。特别是如果它包含需要保护的秘密;

    因此,您可以执行以下操作: 在您的应用程序配置中通过环境变量覆盖:

    foo=default
    foo={?FOO}
    

    并使用特定覆盖运行应用程序 docker 容器:

    docker run ...
     -e foo=bar \
     ...
    

    详情请看:

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:
      docker run ... \
        --volume=[[YOUR-HOST-PATH]]/application.conf:[[YOUR-IMAGE-PATH]]/application.conf
        ...
      

      【讨论】:

      • 我们可以在运行时将配置文件从 localhost 传递到 docker 容器/映像,还是必须挂载到 docker?
      • 例子是运行时。您只能通过挂载、使用环境或让容器在启动期间拉取配置来访问文件。
      猜你喜欢
      • 2021-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      • 2020-08-06
      • 1970-01-01
      • 2019-02-21
      • 2019-05-25
      相关资源
      最近更新 更多