在docker-compose.yml中定义局部变量?

时间:2019-01-07 17:03:39

标签: docker docker-compose

是否可以在docker-compose.yml中定义局部变量?

例如这样的东西:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: $APP_NAME
    container_name: $APP_NAME

我可以在同一$APP_NAME文件中定义docker-compose.yml的值吗?

1 个答案:

答案 0 :(得分:1)

从docker-compose文件版本3.4开始,您可以在compose文件中定义顶级x-前缀部分。它将被解析为有效的yml,但是在创建服务,网络,卷等时被compose忽略。

version: '3.4'

x-var: &APP_NAME
  myimage

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: *APP_NAME
    container_name: *APP_NAME

您甚至可以使用此功能来定义“对象”,例如:

x-common: &common
  image: ${REGISTRY_URL}img:latest

services:
  master:
    <<: *common