【问题标题】:Can you add ENV VAR to docker compose up command您可以将 ENV VAR 添加到 docker compose up 命令吗
【发布时间】:2017-12-02 19:54:30
【问题描述】:

我需要在 docker compose (v2) 中定义一个环境变量。 现在我有类似的东西:

environment:
- SERVERNAME=192.168.xx.xx

但我不太喜欢这种方法。人们需要修改撰写文件。有没有办法让我更动态地做到这一点。比如:

docker-compose up --env SERVERNAME=192.168.xx.xx

最好的方法是什么?

【问题讨论】:

    标签: environment-variables docker-compose


    【解决方案1】:

    您可以使用-e "SERVERNAME=192.168.1.1" -e "SOMETHING=bla" 语法来做到这一点。

    或者使用 Hashicorp 的 Vault 之类的东西。

    【讨论】:

    • docker-compose up --build -d -e SERVERNAME="192.168.10.xxx"docker-compose -e SERVERNAME="192.168.10.10" up 似乎不起作用..
    【解决方案2】:

    我认为这是不可能的,但最接近的解决方案是在 env 文件中传递它

    来自码头工人docs

    您可以使用“env_file”选项将多个环境变量从外部文件传递到服务的容器。

    因此您可以使用该变量创建一个 env 文件,例如 server.env,并在 docker-composer.yml 中引用它

    env_file:
      - server.env
    

    或者您可以在文件夹中创建一个 .env 文件

    $ cat .env
    SERVERNAME=192.168.xx.xx
    

    并使用以下命令更改您的配置:

    environment:
      - SERVERNAME=${SERVERNAME}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-07
      • 2021-08-22
      • 2023-01-28
      • 2018-12-18
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      相关资源
      最近更新 更多