【问题标题】:docker-compose with multiple enviroment variablesdocker-compose 有多个环境变量
【发布时间】:2019-01-07 16:01:47
【问题描述】:

是否可以有多个环境变量文件与docker-compose 一起使用?

在我的文件夹中,我有我的docker-compose.env.prod.env.dev

docker documentation 建议您可以这样做,但我假设该示例仅适用于 Dockerfiles?

理想情况下,我希望运行 docker-compose up dev。或者它的一些变体。

我该怎么办?

【问题讨论】:

    标签: docker docker-compose environment-variables


    【解决方案1】:

    我可以看到几个选项 -

    1. 定义两个服务,一个为dev,另一个为prod,并将值,即.env.dev.env.prod作为env_file提供给撰写文件中的各个服务。发布您可以运行 docker-compose up -d devdocker-compose up -d prod 的帖子。

    2. 使用 shell hack -
      对于开发人员
      $ export CURRENT_ENV_FILE=.env.dev
      对于产品
      $ export CURRENT_ENV_FILE=.env.prod

      改写如下,

      ...
      env_file:
      - ${CURRENT_ENV_FILE}
      ...

    3. 针对不同的环境使用不同的撰写文件。

    4. 您可以将多个 env 文件提供给单个服务,不建议这样做,但在某些时候可能会对您有所帮助。

      env_file:
      - ./api.env
      - ./api2.env

    【讨论】:

    • 天真的问题:在 docker 的上下文中服务是什么意思?
    • 服务下的容器定义。比如在-github.com/vivekyad4v/kubernetes/blob/master/…-python&nginx是两个不同的服务。
    • 嗯,我和你在一起。因此,在该示例中,您可以执行 docker-compose up python 并且 python 服务将是唯一运行的位?
    • 没错,你明白了。我更喜欢docker-compose up -d python。参考 - docs.docker.com/compose/reference/up
    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    • 2018-02-03
    • 2019-02-25
    • 2022-06-11
    相关资源
    最近更新 更多