We're experiencing build failures after upgrading to Docker Engine v29 (https://www.docker.com/blog/docker-engine-version-29/) on both GitHub ARC runners and Docker Desktop. The breaking change is: "The Containerd image store is now the default for new installations."
Buildpacks fail to build images when using the new containerd image store on both platforms.
-
As of Docker Engine v29, the containerd image store becomes the default for image layer and content management for new installs.
-
Legacy graph drivers are still available, but are now deprecated. New installs can still opt out of Containerd image store if there is any issue.
Build Command
mvn spring-boot:build-image -Dspring-boot.build-image.cleanCache=true -Dmaven.test.skip=true -Ddependency-check.skip=true -Dspring-boot.build-image.pullPolicy=ALWAYS -Dspring-boot.build-image.verboseLogging=true
Error Message
[INFO] [creator] ERROR: failed to export: saving image: failed to fetch base layers: saving image with ID "sha256:3553c27d0e2262b61c191e34bc9488f9bf5bd5590865699dba8e5e09db8fc555" from the docker daemon: Error response from daemon: No such image: sha256:3553c27d0e2262b61c191e34bc9488f9bf5bd5590865699dba8e5e09db8fc555
Environment Details
Docker Engine v29 with containerd image store (FAILS):
Server Version: 29.2.0
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
Docker Engine v29 with legacy image store (WORKS):
Server Version: 29.2.0
Storage Driver: overlay2
Workaround
In Docker Desktop, disabling "Use containerd for pulling and storing images" in settings allows builds to complete successfully.
Or for Github Arc Runners set
"features": {
"containerd-snapshotter": false
},
"storage-driver": "overlay2"
Impact
This issue blocks adoption of Docker Engine v29 for teams using Paketo Buildpacks, as the containerd image store is now the default for new installations. The workaround requires manually disabling the new feature, which defeats the purpose of the upgrade.
We're experiencing build failures after upgrading to Docker Engine v29 (https://www.docker.com/blog/docker-engine-version-29/) on both GitHub ARC runners and Docker Desktop. The breaking change is: "The Containerd image store is now the default for new installations."
Buildpacks fail to build images when using the new containerd image store on both platforms.
As of Docker Engine v29, the containerd image store becomes the default for image layer and content management for new installs.
Legacy graph drivers are still available, but are now deprecated. New installs can still opt out of Containerd image store if there is any issue.
Build Command
mvn spring-boot:build-image -Dspring-boot.build-image.cleanCache=true -Dmaven.test.skip=true -Ddependency-check.skip=true -Dspring-boot.build-image.pullPolicy=ALWAYS -Dspring-boot.build-image.verboseLogging=trueError Message
[INFO] [creator] ERROR: failed to export: saving image: failed to fetch base layers: saving image with ID "sha256:3553c27d0e2262b61c191e34bc9488f9bf5bd5590865699dba8e5e09db8fc555" from the docker daemon: Error response from daemon: No such image: sha256:3553c27d0e2262b61c191e34bc9488f9bf5bd5590865699dba8e5e09db8fc555Environment Details
Docker Engine v29 with containerd image store (FAILS):
Docker Engine v29 with legacy image store (WORKS):
Workaround
In Docker Desktop, disabling "Use containerd for pulling and storing images" in settings allows builds to complete successfully.
Or for Github Arc Runners set
Impact
This issue blocks adoption of Docker Engine v29 for teams using Paketo Buildpacks, as the containerd image store is now the default for new installations. The workaround requires manually disabling the new feature, which defeats the purpose of the upgrade.