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

AWS ECR镜像未创建求助:GitHub Actions执行成功却无镜像

问题诊断与修复方案

核心问题

你的GitHub Actions工作流执行成功但ECR无镜像,核心是两个关键错误:

  1. 镜像未匹配ECR命名规则:ECR要求镜像必须以{ECR注册表地址}/{仓库名}:{标签}的格式命名,你当前只给镜像打了本地标签myservice-service:$(date +%s),ECR无法识别。
  2. docker-compose push用法错误:docker-compose push不需要指定--tag参数,它会推送compose配置文件中定义的镜像,而你当前的配置没有关联ECR仓库信息。

修复后的工作流代码

name: Deploy to prod

on:
  push:
    branches: [ "main" ]
 

jobs:
  build:
    name: Build image
    runs-on: ubuntu-latest

    steps:
    - name: Check out code
      uses: actions/checkout@v2
      
    - name: Configure AWS credentials
      uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-west-2

    - name: Login to Amazon ECR
      id: login-ecr
      uses: aws-actions/amazon-ecr-login@v1

    - name: Build, tag, and push docker image to Amazon ECR
      env:
        REGISTRY: ${{ steps.login-ecr.outputs.registry }}
        REPOSITORY: my_repository_name
        IMAGE_TAG: ${{ github.sha }}
      run: |
        # 构建本地镜像
        docker-compose build --file ./myservice_docker/docker-compose.yml myservice-service
        # 给镜像打上ECR要求的完整标签(替换myservice-service为你compose里的实际服务名)
        docker tag myservice-service:latest ${REGISTRY}/${REPOSITORY}:${IMAGE_TAG}
        # 推送至ECR
        docker push ${REGISTRY}/${REPOSITORY}:${IMAGE_TAG}

简化优化方案(可选)

如果你的docker-compose.yml允许修改,可以直接在配置里关联ECR环境变量,让流程更简洁:
在./myservice_docker/docker-compose.yml的服务节点添加镜像定义:

services:
  myservice-service:
    build: .
    image: ${REGISTRY}/${REPOSITORY}:${IMAGE_TAG}

然后工作流中的run步骤可简化为:

docker-compose --file ./myservice_docker/docker-compose.yml build
docker-compose --file ./myservice_docker/docker-compose.yml push

注意事项

  • 确保ECR仓库my_repository_name已在us-west-2区域创建。
  • 检查AWS凭证权限:必须包含ecr:GetAuthorizationToken、ecr:PutImage等ECR推送相关权限。

内容的提问来源于stack exchange,提问作者Black Eyed Beans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 11:37:10