4848 -
4949 name : Set up Docker Buildx
5050 uses : docker/setup-buildx-action@v3
51+ -
52+ name : Set up containerd
53+ uses : crazy-max/ghaction-setup-containerd@v2
54+
5155 -
5256 id : image_env
5357 run : |
5862 '${{ matrix.repository }}'
5963
6064 docker pull "${SOURCE_IMAGE}" || true
65+ echo "IMAGE_HOME=$(mktemp -d)" >> "$GITHUB_OUTPUT"
6166
6267 echo ALPINE_VERSION="${ALPINE_VERSION}" >> "$GITHUB_OUTPUT"
6368 echo PYTHON_VERSION="${PYTHON_VERSION}" >> "$GITHUB_OUTPUT"
7883 context : " ."
7984 file : Dockerfile.alpine
8085 target : buildroot
86+ cache-to : |
87+ type=gha
8188 cache-from : |
89+ type=gha
8290 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
8391 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
8492 build-args : |
8896 SOURCE_IMAGE=${{ steps.image_env.outputs.SOURCE_IMAGE }}
8997 BUILD_ROOT=/d
9098 tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot"
99+ outputs : type=oci,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/buildroot.tar
91100 -
92101 name : distroless
93102 uses : docker/build-push-action@v6
@@ -100,33 +109,20 @@ jobs:
100109 file : Dockerfile.alpine
101110 # target: distroless-python
102111 cache-from : |
112+ type=gha
103113 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
104114 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
105115 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
116+ cache-to : |
117+ type=gha
106118 build-args : |
107119 ALPINE_VERSION=${{ steps.image_env.outputs.ALPINE_VERSION }}
108120 BASE_IMAGE_DIGEST=${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
109121 PYTHON_VERSION=${{ steps.image_env.outputs.PYTHON_VERSION }}
110122 SOURCE_IMAGE=${{ steps.image_env.outputs.SOURCE_IMAGE }}
111123 BUILD_ROOT=/d
112124 tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}"
113-
114- -
115- name : examples/simple-flask
116- uses : docker/build-push-action@v6
117- with :
118- context : " examples/simple-flask"
119- platforms : |
120- linux/amd64
121- linux/arm64/v7
122- linux/arm64/v8
123- cache-from : |
124- type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
125- type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
126- type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
127- build-args : |
128- SOURCE_IMAGE=${{ steps.image_env.outputs.IMAGE_TAG }}
129- tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}-example1-amd64"
125+ outputs : type=oci,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/image.tar
130126
131127 -
132128 name : Login to GitHub Container Registry
@@ -157,7 +153,10 @@ jobs:
157153 context : " ."
158154 file : Dockerfile.alpine
159155 target : buildroot
156+ cache-to : |
157+ type=gha
160158 cache-from : |
159+ type=gha
161160 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
162161 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
163162 build-args : |
@@ -180,7 +179,10 @@ jobs:
180179 linux/arm64/v7
181180 linux/arm64/v8
182181 file : Dockerfile.alpine
182+ cache-to : |
183+ type=gha
183184 cache-from : |
185+ type=gha
184186 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
185187 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
186188 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
@@ -204,6 +206,26 @@ jobs:
204206 index,manifest:distroless.alpine-version=${{ steps.image_env.outputs.ALPINE_VERSION }}
205207 index,manifest:distroless.base-image=alpine${{ steps.image_env.outputs.ALPINE_VERSION }}
206208
209+ -
210+ name : examples/simple-flask
211+ uses : docker/build-push-action@v6
212+ with :
213+ context : " examples/simple-flask"
214+ platforms : |
215+ linux/amd64
216+ linux/arm64/v7
217+ linux/arm64/v8
218+ cache-from : |
219+ type=gha
220+ type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
221+ type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
222+ type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
223+ build-args : |
224+ SOURCE_IMAGE=${{ steps.image_env.outputs.IMAGE_TAG }}
225+ tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}-example1-amd64"
226+ outputs : type=oci,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/example1.tar
227+
228+
207229 update-dockerhub-desc :
208230 needs : [docker]
209231 runs-on : " ubuntu-latest"
0 commit comments