docker-compose up-为容器设置环境变量

时间:2018-12-12 22:01:03

标签: docker docker-compose

我不了解environment:中的docker-compose.yml的工作方式。

如果我有

environment:
  - MY_ENV_VAR
  - MY_SECOND_ENV_VAR

现在,我如何在呼叫docker-compose up时设置它们?

我之前尝试过export

我尝试过-e KEY=VALUE

但是似乎没有任何效果。

当我缩回容器并检查env时,找不到MY_ENV_VARMY_SECOND_ENV_VAR

2 个答案:

答案 0 :(得分:2)

您可以在yml文件中分配一个值。

environment:
  - MY_ENV_VAR=foo
  - MY_SECOND_ENV_VAR=bar

您还可以在yml文件中使用环境变量。

 environment:
  - MY_ENV_VAR=${foo}
  - MY_SECOND_ENV_VAR=${bar}

答案 1 :(得分:2)

我找到了问题。

如果您的yml文件具有多项服务:

one:
  environment:
    - VAR_ONE
two:
  environment:
    - VAR_ONE
    - VAR_TWO

然后您

export VAR_ONE=1
export VAR_TWO=2
docker-compose up

然后从sshtwo,您将看到VAR_TWO设置。

如果将yml更改为:

one:
  environment:
    - VAR_ONE
    - VAR_TWO
two:
  environment:
    - VAR_ONE
    - VAR_TWO

请注意,每个服务都具有完全相同的环境密钥。

然后就可以了!