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

GitHub Action部署AWS ECR失败,docker-compose命令报错求助

解决Docker Compose部署到AWS ECR的GitHub Action错误

错误原因

你使用了docker-compose up --build -t <镜像标签>命令,这里的-t是docker-compose up的超时参数(要求传入整数),并非docker build的镜像标签参数。系统将你的ECR镜像地址当作超时时间解析,导致无法转换为整数,触发ValueError。


解决方案

方案一:单独构建、标签、推送每个服务镜像

针对项目中client和server两个独立服务,分别处理镜像:

修改GitHub Action中「Build, tag, and push image to Amazon ECR」步骤:

- name: Build, tag, and push images to Amazon ECR
  env:
    ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
    IMAGE_TAG: latest
  run: |
    # 构建并推送client镜像
    docker build -t client:latest ./client
    docker tag client:latest $ECR_REGISTRY/snake_ecr-client:$IMAGE_TAG
    docker push $ECR_REGISTRY/snake_ecr-client:$IMAGE_TAG

    # 构建并推送server镜像
    docker build -t server:latest ./server
    docker tag server:latest $ECR_REGISTRY/snake_ecr-server:$IMAGE_TAG
    docker push $ECR_REGISTRY/snake_ecr-server:$IMAGE_TAG

注意:需提前在AWS ECR创建snak_ecr-client和snake_ecr-server两个仓库,也可使用同一仓库不同标签(如snake_ecr:client-latest、snake_ecr:server-latest)。

方案二:通过Docker Compose统一构建并推送

先修改根目录的docker-compose.yml,给每个服务指定ECR镜像地址:

version: '3.8'
services:
  client:
    build: ./client
    image: ${ECR_REGISTRY}/snake_ecr-client:${IMAGE_TAG}
    # 其他原有配置...
  server:
    build: ./server
    image: ${ECR_REGISTRY}/snake_ecr-server:${IMAGE_TAG}
    # 其他原有配置...

再修改GitHub Action步骤:

- name: Build and push images via Docker Compose
  env:
    ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
    IMAGE_TAG: latest
  run: |
    docker-compose build
    docker-compose push

内容的提问来源于stack exchange,提问作者chk.buddi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 00:15:44