You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The [GitHub Actions cache exporter](../../cache/backends/gha.md)
90
-
backend uses the [GitHub Cache API](https://github.com/tonistiigi/go-actions-cache/blob/master/api.md)
90
+
backend uses the [GitHub Cache service API](https://github.com/tonistiigi/go-actions-cache)
91
91
to fetch and upload cache blobs. That's why you should only use this cache
92
-
backend in a GitHub Action workflow, as the `url` (`$ACTIONS_CACHE_URL`) and
92
+
backend in a GitHub Action workflow, as the `url` (`$ACTIONS_RESULTS_URL`) and
93
93
`token`(`$ACTIONS_RUNTIME_TOKEN`) attributes only get populated in a workflow
94
94
context.
95
95
@@ -121,6 +121,64 @@ jobs:
121
121
cache-to: type=gha,mode=max
122
122
```
123
123
124
+
> [!IMPORTANT]
125
+
>
126
+
> Starting [April 15th, 2025, only GitHub Cache service API v2 will be supported](https://gh.io/gha-cache-sunset).
127
+
>
128
+
> If you encounter the following error during your build:
129
+
>
130
+
> ```console
131
+
> ERROR: failed to solve: This legacy service is shutting down, effective April 15, 2025. Migrate to the new service ASAP. For more information: https://gh.io/gha-cache-sunset
132
+
> ```
133
+
>
134
+
> You're probably using outdated tools that only support the legacy GitHub
135
+
> Cache service API v1. Here are the minimum versions you need to upgrade to
136
+
> depending on your use case:
137
+
> * Docker Buildx >= v0.21.0
138
+
> * BuildKit >= v0.20.0
139
+
> * Docker Compose >= v2.33.1
140
+
> * Docker Engine >= v28.0.0 (if you're building using the Docker driver with containerd image store enabled)
141
+
>
142
+
> If you're building using the `docker/build-push-action` or `docker/bake-action`
143
+
> actions on GitHub hosted runners, Docker Buildx and BuildKit are already up
144
+
> to date but on self-hosted runners, you may need to update them yourself.
145
+
> Alternatively, you can use the `docker/setup-buildx-action` action to install
146
+
> the latest version of Docker Buildx:
147
+
>
148
+
> ```yaml
149
+
> - name: Set up Docker Buildx
150
+
> uses: docker/setup-buildx-action@v3
151
+
> with:
152
+
> version: latest
153
+
> ```
154
+
>
155
+
> If you're building using Docker Compose, you can use the
156
+
> `docker/setup-compose-action` action:
157
+
>
158
+
> ```yaml
159
+
> - name: Set up Docker Compose
160
+
> uses: docker/setup-compose-action@v1
161
+
> with:
162
+
> version: latest
163
+
> ```
164
+
>
165
+
> If you're building using the Docker Engine with the containerd image store
166
+
> enabled, you can use the `docker/setup-docker-action` action:
167
+
>
168
+
> ```yaml
169
+
> -
170
+
> name: Set up Docker
171
+
> uses: docker/setup-docker-action@v4
172
+
> with:
173
+
> version: latest
174
+
> daemon-config: |
175
+
> {
176
+
> "features": {
177
+
> "containerd-snapshotter": true
178
+
> }
179
+
> }
180
+
> ```
181
+
124
182
### Cache mounts
125
183
126
184
BuildKit doesn't preserve cache mounts in the GitHub Actions cache by default.
This page provides information about the ongoing integration of `containerd` for
12
-
image and file system management in the Docker Engine.
11
+
Docker Desktop is transitioning to use containerd for image and filesystem management. This page outlines the benefits, setup process, and new capabilities enabled by the containerd image store.
13
12
14
13
> [!NOTE]
15
14
>
16
-
> Images and containers are not shared between the classic image store and the
17
-
> new containerd image store. When you switch image stores, containers and
18
-
> images from the inactive store remain but are hidden until you switch back.
15
+
> Docker Desktop maintains separate image stores for the classic and containerd image stores.
16
+
> When switching between them, images and containers from the inactive store remain on disk but are hidden until you switch back.
19
17
20
-
## What is containerd?
18
+
## What is `containerd`?
21
19
22
-
`containerd` is an abstraction of the low-level kernel features
23
-
used to run and manage containers on a system.
24
-
It's a platform used in container software like Docker and Kubernetes.
20
+
`containerd` is a container runtime that provides a lightweight, consistent interface for container lifecycle management. It is already used under the hood by Docker Engine for creating, starting, and stopping containers.
25
21
26
-
Docker Engine already uses `containerd` for container lifecycle management,
27
-
which includes creating, starting, and stopping containers.
28
-
This page describes the next step of the containerd integration for Docker:
29
-
the containerd image store.
22
+
Docker Desktop’s ongoing integration of containerd now extends to the image store, offering more flexibility and modern image support.
30
23
31
-
## Image store
24
+
## What is the `containerd` image store?
32
25
33
26
The image store is the component responsible for pushing, pulling,
34
27
and storing images on the filesystem.
28
+
35
29
The classic Docker image store is limited in the types of images that it supports.
36
30
For example, it doesn't support image indices, containing manifest lists.
37
31
When you create multi-platform images, for example,
38
32
the image index resolves all the platform-specific variants of the image.
39
33
An image index is also required when building images with attestations.
40
34
41
-
The containerd image store extends range of image types
35
+
The containerd image store extends the range of image types
42
36
that the Docker Engine can natively interact with.
43
37
While this is a low-level architectural change,
44
38
it's a prerequisite for unlocking a range of new use cases, including:
@@ -88,8 +82,4 @@ and load them to your local image store:
0 commit comments