You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于docker-compose.yml中${{ variable }}指令的含义与用法咨询

Docker Compose 中 ${{ variable }} 的含义与用法

含义

${{ variable }} 是 Docker Compose 自带的语法,专门用来在配置文件里引用**自定义扩展字段(Extension Fields)**的值。扩展字段是 Compose 文件里以 x- 开头的自定义配置项,核心目的是把重复的配置片段抽出来复用,让整个 Compose 文件更简洁,维护起来也更方便。

具体用法

1. 先定义扩展字段

在 Compose 文件的顶层写以 x- 开头的扩展字段,比如把多个服务共用的环境变量、镜像配置抽出来:

# 定义多个服务共用的数据库环境变量
x-common-db-env:
  - MYSQL_ROOT_PASSWORD=root123
  - MYSQL_DATABASE=app_db

# 也可以定义完整的服务配置片段
x-base-db-service:
  image: mysql:8.0
  restart: always
  environment: ${{ x-common-db-env }}

2. 用 ${{ }} 引用扩展字段

在具体的服务配置里直接通过 ${{ 扩展字段名 }} 调用:

services:
  # 业务数据库服务
  app-db:
    <<: ${{ x-base-db-service }}
    volumes:
      - app-db-data:/var/lib/mysql

  # 测试数据库服务,复用相同的基础配置
  test-db:
    <<: ${{ x-base-db-service }}
    environment:
      # 在复用的基础上追加新变量
      - ${{ x-common-db-env }}
      - MYSQL_USER=test_user
    volumes:
      - test-db-data:/var/lib/mysql

volumes:
  app-db-data:
  test-db-data:

注意要点

  • 扩展字段必须以 x- 开头,不然 Compose 会判定为无效的顶层配置。
  • ${{ }} 只能引用顶层的扩展字段,没法嵌套引用某个服务内部的配置项。
  • 这个语法从 Docker Compose 1.27.0 版本才开始支持,用低版本的话得先升级。
  • 别把它和环境变量引用的 ${VARIABLE} 搞混,前者是用自定义扩展字段,后者是读系统/容器的环境变量。

内容的提问来源于stack exchange,提问作者Игорь

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:45:41