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

如何使用circleci/aws-ecr@8.2.1 orb指定Docker镜像构建上下文路径?

问题:CircleCI aws-ecr orb构建镜像时上下文路径错误

仓库目录结构

repo
├── app1
│   ├── app
│   ├── requirements.txt
│   ├── Dockerfile
├── app2
│   ├── app
│   ├── requirements.txt
│   ├── Dockerfile
├── app3
│   ├── app
│   ├── requirements.txt
│   ├── Dockerfile

app1的Dockerfile内容

FROM python:3.10-alpine

WORKDIR /app

COPY requirements.txt .

RUN apk add zlib-dev jpeg-dev gcc musl-dev libffi-dev

RUN pip3 install --no-cache-dir --upgrade -r requirements.txt

RUN rm requirements.txt

COPY app .

ENTRYPOINT ["python3"]

CMD ["script.py"]

CircleCI配置片段

version: 2.1

orbs:
  docker: circleci/docker@2.2.0
  aws-ecr: circleci/aws-ecr@8.2.1
  aws-ecs: circleci/aws-ecs@03.2.0

[...]

workflows:
  main:
    jobs:
      - aws-ecr/build-and-push-image:
          platform: linux/arm64
          path: app1

构建错误信息

第一次构建错误:

> [7/7] COPY app .:
------
error: failed to solve: rpc error: code = Unknown desc = failed to compute cache key: "/app" not found: not found

添加build-path参数后报错:

Error calling job: 'aws-ecr/build-and-push-image' Unexpected argument(s): build-path

解决方案

核心问题是aws-ecr@8.2.1 orb的build-and-push-image job并不存在build-path参数,正确指定构建上下文的参数是path,按以下方式调整配置即可解决:

正确配置方式

确保path参数指向app1目录(Dockerfile所在目录,同时作为构建上下文),若需要可显式指定dockerfile参数(默认值为Dockerfile,可省略):

workflows:
  main:
    jobs:
      - aws-ecr/build-and-push-image:
          platform: linux/arm64
          path: app1
          dockerfile: Dockerfile

排查验证步骤

如果配置后仍报错,可添加前置步骤验证目录结构,确认CircleCI拉取代码后的文件是否符合预期:

- aws-ecr/build-and-push-image:
    platform: linux/arm64
    path: app1
    pre-steps:
      - run:
          command: ls -la app1

该步骤会列出app1目录下的所有文件,确认app子目录、requirements.txt和Dockerfile是否存在。

原理说明

当path设为app1时,Docker构建上下文会被设置为repo/app1,此时Dockerfile中的COPY app .会从上下文目录(app1)中复制app子目录到容器内的/app路径,与你的目录结构完全匹配,不会出现找不到文件的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:55:34