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,16 +109,28 @@ 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 }}"
125+ outputs : type=oci,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/image.tar
126+
127+ -
128+ name : Import image in containerd
129+ run : |
130+ echo 'import 1'
131+ skopeo --debug copy 'oci-archive:${{ steps.image_env.outputs.IMAGE_HOME }}/buildroot.tar' 'docker-daemon:${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot'
132+ echo 'import 2'
133+ skopeo --debug copy 'oci-archive:${{ steps.image_env.outputs.IMAGE_HOME }}/image.tar' 'docker-daemon:${{ steps.image_env.outputs.IMAGE_TAG }}'
113134
114135 -
115136 name : examples/simple-flask
@@ -121,12 +142,19 @@ jobs:
121142 linux/arm64/v7
122143 linux/arm64/v8
123144 cache-from : |
145+ type=gha
124146 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
125147 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
126148 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
127149 build-args : |
128150 SOURCE_IMAGE=${{ steps.image_env.outputs.IMAGE_TAG }}
129151 tags : " ${{ steps.image_env.outputs.IMAGE_TAG }}-example1-amd64"
152+ outputs : type=oci,dest=${{ steps.image_env.outputs.IMAGE_HOME }}/example1.tar
153+
154+ -
155+ name : Import image in containerd
156+ run : |
157+ 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'
130158
131159 -
132160 name : Login to GitHub Container Registry
@@ -157,7 +185,10 @@ jobs:
157185 context : " ."
158186 file : Dockerfile.alpine
159187 target : buildroot
188+ cache-to : |
189+ type=gha
160190 cache-from : |
191+ type=gha
161192 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
162193 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
163194 build-args : |
@@ -180,7 +211,10 @@ jobs:
180211 linux/arm64/v7
181212 linux/arm64/v8
182213 file : Dockerfile.alpine
214+ cache-to : |
215+ type=gha
183216 cache-from : |
217+ type=gha
184218 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}
185219 type=registry,ref=${{ steps.image_env.outputs.IMAGE_TAG }}-buildroot
186220 type=registry,ref=${{ steps.image_env.outputs.SOURCE_IMAGE }}@${{ steps.image_env.outputs.BASE_IMAGE_DIGEST }}
0 commit comments