dockerfile的这一行存在问题:
docker build \ -t $CONTAINER_IMAGE \ -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$CONTAINER_IMAGE ./app
docker build
命令语法为:
docker build [OPTIONS] PATH | URL | -
如果使用-t
选项,则指定容器映像名称。
在上面的命令中,由于您使用了两个-t
选项,因此首先将-t
所有内容都用作dockerfile的路径,这是错误的,因此会出现此错误unable to prepare context: path " " not found
。
因此,正确的语法应为:
docker image build -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$CONTAINER_IMAGE ./app
。
这是修改后的Dockerfile:
name: Building and pushing a docker image to Amazon ECR
on: [push, pull_request]
env:
AWS_DEFAULT_REGION: ap-southeast-1
AWS_DEFAULT_OUTPUT: json
AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
CONTAINER_IMAGE: myimage:${{ github.sha }}
jobs:
build-and-push:
name: Building and pushing image to AWS ECR
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Setup ECR
run: |
$( aws ecr get-login --no-include-email )
- name: Build and tag the image
run: |
docker image build -t $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$CONTAINER_IMAGE ./app
- name: Push
if: github.ref == 'refs/heads/master'
run: |
docker push $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$CONTAINER_IMAGE
分叉了您的项目并运行了相同的项目。在Git Actions上成功构建和标记图像步骤。
下一步失败,即推送步骤出错
The repository with name 'myimage' does not exist in the registry with id '***'
。
为此,您需要在ECR容器注册表中创建映像存储库。您可以参考此答案以将相同的docker镜像推送到Amazon ECS存储库
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句