我可以在docker-compose.yml文件中设置/获取变量吗?

时间:2017-10-09 08:10:20

标签: docker docker-compose

我想在我的项目docker-compose.yml中有一个代表端口的变量,而不是将8080放在文件的任何地方,我宁愿将它用作变量。

是否可以设置变量,比如在文件的开头,然后在文件的其他位置重复使用?

3 个答案:

答案 0 :(得分:5)

您可以使用外部.env文件并将其包含在docker-compose文件中。

$ cat .env
port=8080

$ cat docker-compose.yml
version: '3'
services:
  web:
    port: "${port}"

docker-compose.yml .env 应位于同一目录中。

答案 1 :(得分:2)

您可以执行以下步骤:

  1. .env文件旁边创建一个名为docker-compose.yml的文件
  2. 将变量设置为port=8080
  3. docker-compose.yml文件中$port${port}
  4. 使用它

    Reference

答案 2 :(得分:1)

从3.4版开始,您可以使用扩展字段重用配置部件。

有效的扩展字段有两个要求:

  1. 应位于Compose文件的根目录
  2. 他们的名字以“ x-”字符序列开头。

有一个couple of examples in the official documentation