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

使用GitHub Action推送镜像至AWS ECR时遇路径准备错误

解决GitHub Action推送AWS ECR时的"Unable to prepare context"报错

问题分析

报错Unable to prepare context: path "***.dkr.ecr.eu-central-1.amazonaws.com.."说明Docker构建时被传入了错误的上下文路径——ECR仓库地址,而非本地代码目录。同时报错中的ECR区域eu-central-1与你配置的ap-northeast-2不匹配,也是触发问题的潜在诱因。

解决方案

1. 明确指定构建上下文与Dockerfile路径

该aws-ecr-action在未显式指定构建上下文时,可能误将其他参数值当作上下文路径。需在with块中添加以下参数:

  • context: .:指定当前checkout的代码目录为构建上下文
  • dockerfile: ./Dockerfile:如果Dockerfile不在根目录,替换为实际路径

修改后的工作流:

jobs:
  build-and-push:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - uses: docker://ghcr.io/kciter/aws-ecr-action:latest
      with:
        access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        account_id: ${{ secrets.AWS_ACCOUNT_ID }}
        repo: docker/repo
        region: ap-northeast-2
        tags: latest,${{ github.sha }}
        create_repo: true
        image_scanning_configuration: true
        set_repo_policy: true
        repo_policy_file: repo-policy.json
        # 新增构建上下文与Dockerfile配置
        context: .
        dockerfile: ./Dockerfile

2. 修正区域不匹配问题

  • 确认你的AWS账号在ap-northeast-2区域拥有ECR仓库权限(或依赖create_repo: true自动创建)
  • 检查AWS凭证(AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY)是否有权限操作ap-northeast-2区域的ECR资源,避免因权限不足导致action fallback到其他默认区域

3. 验证本地文件结构

在aws-ecr-action步骤前添加目录检查,确认必要文件存在:

- run: ls -la
  name: 检查当前目录文件

确保Dockerfile和repo-policy.json都在指定路径下。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 00:28:19