【发布时间】:2021-01-01 08:04:26
【问题描述】:
我的项目中有几个 Dockerfile。一种是用于构建basic 图像,其中包含一些业务级别的抽象。其他人正在基于basic 图像构建服务。
所以在我的服务的 Dockerfile 中,我有类似的东西
FROM my-project/base
# Adding some custom logic around basic stuff
我使用 GitHub Actions 作为我的 CI/CD 工具。 起初我有一个步骤将 docker 安装到我的工作人员中,然后运行类似:
- name: Build base image
working-directory: business
run: docker build -t my-project/base .
- name: Build and push service
working-directory: service
run: |
docker build -t my-ecr-repo/service .
docker push my-ecr-repo/service
但后来我找到了 docker/build-push-action 并决定在我的管道中使用它:
- name: Build business-layer container
uses: docker/build-push-action@v2
with:
load: true
tags: my-project/base
context: business
file: business/Dockerfile
- name: Build service
uses: docker/build-push-action@v2
with:
push: true
tags: my-ecr-repo/service
context: service
file: service/Dockerfile
目前,第二步尝试下载docker.io/my-project/base,显然做不到,因为我从不推送基础镜像:
ERROR: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed
问题是: 构建映像的正确方法是什么,以便通过以下构建步骤在本地访问它?
PS:
我不想将我的裸体basic 图像推到任何地方。
【问题讨论】:
标签: docker github-actions