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
相关产品推荐
相关产品推荐

