在docker-compose yml中重用变量

时间:2019-07-09 15:23:21

标签: docker docker-compose

有两篇文章描述了如何使用环境变量,但是我的用例有所不同。

我有docker-compose文件,其中有3-7个容器。视情况而定。

version: '2'

services:
  db:
    image: example/db
  backend:
    image: example/server
  frontend:
    image: example/gui

现在,在上面的示例中,我所有的映像都将使用最新版本,但是我想控制要部署的版本,因此我想定义一些可变版本,并在我的所有映像中使用它,例如:

version: '2'

variable version=1.0.1

services:
  db:
    image: example/db:$version
  backend:
    image: example/server:$version
  frontend:
    image: example/gui:$version

第二个示例是错误的,但它表明我需要实现我的目标

2 个答案:

答案 0 :(得分:1)

在与docker-compose.yml相同的目录中,添加一个名为.env的环境文件,然后指定您的环境变量。

enter image description here

然后,将变量添加到您的docker-compose.yml

enter image description here

${..}代表.env中的变量

答案 1 :(得分:1)

Docker-compose对变量使用了插值语法${variable},但是您在文件中错过了它。

version: '2'

services:
  db:
    image: example/db:${version}
  backend:
    image: example/server:${version}
  frontend:
    image: example/gui:${version}

因此只需将版本传递给您的docker-compose命令

version=1.13-alpine docker-compose up