4848 -
4949 name : Set up Docker Buildx
5050 uses : docker/setup-buildx-action@v3
51+
5152 -
5253 id : image_env
5354 run : |
5859 '${{ matrix.repository }}'
5960
6061 docker pull "${SOURCE_IMAGE}" || true
62+ echo "IMAGE_HOME=$(mktemp -d)" >> "$GITHUB_OUTPUT"
6163
6264 echo ALPINE_VERSION="${ALPINE_VERSION}" >> "$GITHUB_OUTPUT"
6365 echo PYTHON_VERSION="${PYTHON_VERSION}" >> "$GITHUB_OUTPUT"
7880 context : " ."
7981 file : Dockerfile.alpine
8082 target : buildroot
83+ cache-to : |
84+ type=gha
8185 cache-from : |
86+ type=gha
8287 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
8388 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
8489 build-args : |
8893 SOURCE_IMAGE=${{ steps.image_env.outputs.SOURCE_IMAGE }}
8994 BUILD_ROOT=/d
9095 tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot"
96+ outputs : type=docker,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/distroless-buildroot.tar
9197 -
9298 name : distroless
9399 uses : docker/build-push-action@v6
@@ -100,16 +106,26 @@ jobs:
100106 file : Dockerfile.alpine
101107 # target: distroless-python
102108 cache-from : |
109+ type=gha
103110 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
104111 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
105112 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
113+ cache-to : |
114+ type=gha
106115 build-args : |
107116 ALPINE_VERSION=${{ steps.image_env.outputs.ALPINE_VERSION }}
108117 BASE_IMAGE_DIGEST=${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
109118 PYTHON_VERSION=${{ steps.image_env.outputs.PYTHON_VERSION }}
110119 SOURCE_IMAGE=${{ steps.image_env.outputs.SOURCE_IMAGE }}
111120 BUILD_ROOT=/d
112121 tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}"
122+ outputs : type=docker,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/distroless.tar
123+ -
124+ name : Import image in containerd
125+ run : |
126+ find ${{ steps.image_env.outputs.IMAGE_HOME }}/ -type f
127+ docker image load -i '${{ steps.image_env.outputs.IMAGE_HOME }}/distroless-buildroot.tar'
128+ docker image load -i '${{ steps.image_env.outputs.IMAGE_HOME }}/distroless.tar'
113129
114130 -
115131 name : examples/simple-flask
@@ -121,12 +137,19 @@ jobs:
121137 linux/arm64/v7
122138 linux/arm64/v8
123139 cache-from : |
140+ type=gha
124141 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
125142 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
126143 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
127144 build-args : |
128145 SOURCE_IMAGE=${{ steps.image_env.outputs.IMAGE_TAG }}
129146 tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}-example1-amd64"
147+ outputs : type=docker,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/example1.tar
148+
149+ -
150+ name : Import image in containerd
151+ run : |
152+ sudo ctr images import --base-name '${{ steps.image_env.outputs.IMAGE_TAG }}-example1-amd64' --digests --all-platforms '${{ steps.image_env.outputs.IMAGE_HOME }}/example1.tar'
130153
131154 -
132155 name : Login to GitHub Container Registry
@@ -157,7 +180,10 @@ jobs:
157180 context : " ."
158181 file : Dockerfile.alpine
159182 target : buildroot
183+ cache-to : |
184+ type=gha
160185 cache-from : |
186+ type=gha
161187 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
162188 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
163189 build-args : |
@@ -180,7 +206,10 @@ jobs:
180206 linux/arm64/v7
181207 linux/arm64/v8
182208 file : Dockerfile.alpine
209+ cache-to : |
210+ type=gha
183211 cache-from : |
212+ type=gha
184213 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
185214 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
186215 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
0 commit comments