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

如何在Bitbucket Pipeline中使用带BuildKit的Docker Compose V2?

解决Bitbucket Pipeline中Docker Compose V2的配置问题

可行的Pipeline配置示例

image: atlassian/default-image:3

pipelines:
  default:
    - step:
        name: Build and Deploy with Docker Compose V2
        services:
          - docker
        script:
          # 安装Docker Compose V2
          - DOCKER_COMPOSE_VERSION="v2.23.3"
          - sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
          - sudo chmod +x /usr/local/bin/docker-compose
          # 验证安装
          - docker compose version
          # 配置BuildKit环境变量(关键:避免h2c升级错误)
          - export DOCKER_BUILDKIT=1
          - export BUILDKIT_STEP_LOG_MAX_SIZE=10485760
          # 执行Docker Compose操作(根据你的需求调整)
          - docker compose -f docker-compose.prod.yml build --no-cache
          - docker compose -f docker-compose.prod.yml up -d

关键配置说明

  • 基础镜像选择:使用atlassian/default-image:3,该镜像自带Docker环境,无需额外配置特权模式,直接绕过--privileged=true的权限限制。
  • 手动安装Compose V2:通过curl直接下载官方二进制文件,避免第三方镜像带来的网络或兼容性问题(比如你遇到的linuxserver镜像403错误)。
  • BuildKit环境变量:
    • DOCKER_BUILDKIT=1:启用BuildKit,满足分环境.dockerignore的需求。
    • BUILDKIT_STEP_LOG_MAX_SIZE:调整BuildKit日志大小,避免因日志溢出导致的通信异常,间接解决h2c升级失败的403错误。
  • 依赖内置Docker服务:借助Bitbucket Pipeline内置的docker服务,无需手动启动Docker daemon,规避权限相关报错。

额外注意事项

  • 若涉及私有镜像仓库,需在Pipeline脚本中添加docker login命令配置拉取凭证。
  • 若仍遇h2c相关错误,尝试添加export BUILDKIT_HOST=tcp://localhost:1234,强制BuildKit使用TCP通信而非Unix socket,解决协议升级问题。
  • 定期更新Docker Compose版本,使用最新稳定版可减少兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:30:56