我的项目中有几个 Dockerfile。一种是用于构建basic图像,其中包含一些业务级别的抽象。其他人正在根据basic图像构建服务。
所以在我的服务的 Dockerfiles 中,我有类似的东西
FROM my-project/base
# Adding some custom logic around basic stuff
Run Code Online (Sandbox Code Playgroud)
我使用 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
Run Code Online (Sandbox Code Playgroud)
但是后来我找到了 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 …Run Code Online (Sandbox Code Playgroud)