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

Azure DevOps中Docker Compose版本兼容问题及COMPOSE_API_VERSION设置咨询

问题

此前Azure DevOps流水线中使用DockerCompose@0任务运行服务一直正常,昨日起突然报错:

The current Compose file version is not compatible with your engine version. Please upgrade your Compose file to a more recent version, or set a COMPOSE_API_VERSION in your environment.

流水线配置如下:

- task: DockerCompose@0
  displayName: Run services
  inputs:
   containerregistrytype: 'Container Registry'         
   dockerComposeFile: 'build/docker/docker-compose.yml'
   dockerComposeFileArgs: 'DOCKER_BUILD_SOURCE=$(System.DefaultWorkingDirectory)'
   action: 'Run services'
   buildImages: false

docker-compose.yml内容(细节已修改):

version: '3.0'

services:
  sqlserver:
    image: willh/mssql-server-windows-developer:latest
    container_name: sqlserver
    shm_size: 4gb
    ports:
      - "1433:1433"
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=a(!)Passcode

经排查,问题出在微软构建代理镜像更新:从包含Docker 20.10.23、Docker Compose v1 1.29.2的版本(20230129.1)升级到包含Docker 23.0.0的版本(20230206.1)后触发报错,咨询需设置哪个COMPOSE_API_VERSION才能恢复正常运行?

解决方案

针对Docker 23.0.0版本,需设置COMPOSE_API_VERSION=1.43来适配现有的docker-compose.yml 3.0版本。

有两种可行的处理方式:

  • 方式一:在流水线任务中添加环境变量
    修改DockerCompose@0任务配置,增加环境变量声明:
- task: DockerCompose@0
  displayName: Run services
  inputs:
   containerregistrytype: 'Container Registry'         
   dockerComposeFile: 'build/docker/docker-compose.yml'
   dockerComposeFileArgs: 'DOCKER_BUILD_SOURCE=$(System.DefaultWorkingDirectory)'
   action: 'Run services'
   buildImages: false
  env:
    COMPOSE_API_VERSION: '1.43'
  • 方式二:升级docker-compose.yml版本(更推荐)
    将docker-compose.yml中的version: '3.0'升级为version: '3.8'——这是Docker Compose v1支持的最高版本,同时完全兼容Docker 23.0.0,无需依赖环境变量即可解决兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:50:25