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

Bitbucket Pipeline部署ECS服务遇docker-compose报错求助

问题:Bitbucket Pipeline部署ECS服务时docker-compose报错

我正尝试通过Bitbucket Pipeline部署ECS服务,但遇到报错。已尝试更新Docker、pip、docker-compose,但问题仍未解决。

当前版本

  • docker-compose: 1.29.2
  • pip: 23.3.1
  • docker: latest

Bitbucket Pipeline YAML配置

name: "Deployment"
services:
  - docker
caches:
  - node
  - docker
script:
  - pip install awscli docker-compose
  - docker-compose --version
  - aws configure set aws_access_key "${AWS_ACCESS_KEY}"
  - aws configure set aws_secret_key "${AWS_SECRET_KEY}"
  - docker-compose -f ./docker/docker-compose.stg.yml build
  - eval $(aws ecr get-login --no-include-email --region us-east-1 | sed 's;https://;;g')
  - docker push ${DOCKER_REGISTRY}/dashboard-service:stg
  - aws ecs update-service --cluster new-services --service dashboard-service --force-new-deployment

错误信息

+ docker-compose -f ./docker/docker-compose.stg.yml build
Traceback (most recent call last):
  File "/usr/local/bin/docker-compose", line 8, in <module>
  sys.exit(main())
  File "/usr/local/lib/python3.8/site-packages/compose/cli/main.py", line 81, in main
  command_func()
  File "/usr/local/lib/python3.8/site-packages/compose/cli/main.py", line 200, in perform_command
  project = project_from_options('.', options)
  File "/usr/local/lib/python3.8/site-packages/compose/cli/command.py", line 60, in project_from_options
  return get_project(
  File "/usr/local/lib/python3.8/site-packages/compose/cli/command.py", line 152, in get_project
  client = get_client(
  File "/usr/local/lib/python3.8/site-packages/compose/cli/docker_client.py", line 41, in get_client
  client = docker_client(
  File "/usr/local/lib/python3.8/site-packages/compose/cli/docker_client.py", line 124, in docker_client
kwargs = kwargs_from_env(environment=environment, ssl_version=tls_version)
TypeError: kwargs_from_env() got an unexpected keyword argument 'ssl_version'

解决方法

这个错误是因为docker-compose 1.29.2与最新版的Docker SDK不兼容——新版本的kwargs_from_env()函数已移除ssl_version参数,而旧版docker-compose仍在调用该参数。

方案1:锁定兼容的Docker SDK版本

修改Pipeline脚本中的pip安装命令,指定与docker-compose 1.29.2兼容的Docker SDK版本(比如4.4.4):

pip install awscli docker-compose docker==4.4.4

方案2:升级到docker-compose v2版本

docker-compose v2已整合进Docker CLI,兼容性更好。替换脚本中的pip安装步骤为直接下载二进制文件:

curl -SL https://github.com/docker/compose/releases/download/v2.23.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

之后脚本中的docker-compose命令可改为docker compose(v2标准语法)。

方案3:使用Bitbucket官方Docker镜像

尝试切换到Bitbucket提供的预配置Docker镜像,避免依赖版本冲突。比如在Pipeline中指定image: atlassian/default-image:3,该镜像已预装兼容版本的docker和docker-compose。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:11:01