具有多个环境变量的 docker-compose

shm*_*ink 3 environment-variables docker docker-compose

是否可以使用多个环境变量文件docker-compose

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

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

理想情况下,我希望我能跑步docker-compose up dev。或者是它的一些变体。

我该怎么办呢?

viv*_*d4v 6

我可以看到几个选项 -

  1. 定义两个服务,一个为,dev另一个为,prod并将值 ie .env.dev&.env.prod作为 env_file 提供给撰写文件中的各个服务。发布您可以运行docker-compose up -d dev& docker-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_file:
    - ./api.env
    - ./api2.env