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

升级Docker Compose至2.x后,配置文件合并失败如何解决?

解决Docker Compose 2.x多配置文件合并时的extends报错问题

问题原因

Docker Compose 2.x调整了extends跨文件引用的解析逻辑:1.x版本会先合并所有指定的配置文件,再解析服务继承关系;而2.x版本按文件加载顺序逐个解析,跨文件继承时必须显式指定被继承服务所在的配置文件,否则会出现服务找不到的错误。

修复方案

修改docker-compose.build.yml中的extends语法,添加file字段指定被继承服务所在的主配置文件路径:

修改后的docker-compose.build.yml内容:

version: '2'

services:

  service-prebuilt:
    extends:
      file: docker-compose.yml
      service: service
    build: $CP_BUILD_FORCE_NO_BUILD_CONTEXT
    image: $CP_BUILD_BFF_IMAGE

  test-prebuilt:
    extends:
      file: docker-compose.yml
      service: test
    build: $CP_BUILD_FORCE_NO_BUILD_CONTEXT
    image: $CP_BUILD_BFF_IMAGE

说明

  • 通过file字段明确告知Compose 2.x,service和test服务定义在当前目录的docker-compose.yml中,这样就能正确解析继承关系。
  • 如果主配置文件不在当前目录,需将file的值改为对应的相对或绝对路径。

修改完成后,执行原命令即可正常运行:

docker-compose -f docker-compose.yml -f docker-compose.build.yml up

内容的提问来源于stack exchange,提问作者Yamikuronue

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 02:17:06