【发布时间】:2022-01-14 03:39:12
【问题描述】:
我有一个 github 工作流,它正在构建 docker 映像、使用 requirements.txt 安装依赖项并推送到 AWS ECR。当我在本地检查时一切正常,但是当 github 工作流运行时,它无法访问 requirements.txt 文件并显示以下错误
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
下面是我的简单dockerfile
FROM amazon/aws-lambda-python:3.9
COPY . ${LAMBDA_TASK_ROOT}
RUN pip3 install scipy
RUN pip3 install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
CMD [ "api.handler" ]
这里是 cicd yaml 文件。
name: Deploy to ECR
on:
push:
branches: [ metrics_handling ]
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: ${{ secrets.REGION }}
- name: Build, Tag, and Push image to Amazon ECR
id: tag
run: |
aws ecr get-login-password --region ${region} | docker login --username AWS --password-stdin ${accountid}.dkr.ecr.${region}.amazonaws.com
docker rmi --force ${accountid}.dkr.ecr.${region}.amazonaws.com/${ecr_repository}:latest
docker build --tag ${accountid}.dkr.ecr.${region}.amazonaws.com/${ecr_repository}:latest -f API/Dockerfile . --no-cache
docker push ${accountid}.dkr.ecr.${region}.amazonaws.com/${ecr_repository}:latest
env:
accountid: ${{ secrets.ACCOUNTID}}
region: ${{ secrets.REGION }}
ecr_repository: ${{ secrets.ECR_REPOSITORY }}
下面是我的目录结构。 requirements.txt 文件位于 API 目录中,其中包含构建和运行映像所需的所有相关代码。
【问题讨论】:
-
requirements.txt 文件在哪里?您的屏幕截图没有显示。
-
@JohnHanley 它的内部 API 目录。 dockerfile 和 requirements.txt 文件都在 API 目录中。
-
您在 API 目录中指定 Dockerfile,但您是从 API 的父目录构建的。这就是没有找到 requirements.txt 的原因。
-
@JohnHanley 我在 pipeline.yaml 文件中使用这个构建命令。 docker build --tag ${accountid}.dkr.ecr.${region}.amazonaws.com/${ecr_repository}:latest -f API/Dockerfile 。 --no-cache 这还不够吗?
-
使用这个构建命令:docker build --tag ${accountid}.dkr.ecr.${region}.amazonaws.com/${ecr_repository}:latest API --no-缓存
标签: docker github aws-lambda github-actions requirements.txt