Description
On my M3 Mac I am unable to build build a docker image if I use --label and --platform linux/amd64 parameters when using the old build backend.
Reproduce
- Create a Dockerfile:
- Build
DOCKER_BUILDKIT=0 docker build \
--label io.prefect.version=2.8.1 \
--platform linux/amd64 \
.
Expected behavior
The image should be successfully built, but instead I get the following error NotFound: content digest error:
❯ DOCKER_BUILDKIT=0 docker build \
--label io.prefect.version \
--platform linux/amd64 \
.
DEPRECATED: The legacy builder is deprecated and will be removed in a future release.
BuildKit is currently disabled; enable it by removing the DOCKER_BUILDKIT=0
environment-variable.
Sending build context to Docker daemon 4.306MB
Step 1/2 : FROM busybox
---> 498a000f370d
Step 2/2 : LABEL io.prefect.version=2.8.1
NotFound: content digest sha256:bc17845ef50fdfe6643ea6535eb9df68623dc52c7a3bceb8401fe85d9dca2a0e: not found
docker version
Client:
Version: 27.5.1
API version: 1.47
Go version: go1.22.11
Git commit: 9f9e405
Built: Wed Jan 22 13:37:19 2025
OS/Arch: darwin/arm64
Context: desktop-linux
Server: Docker Desktop 4.38.0 (181591)
Engine:
Version: 27.5.1
API version: 1.47 (minimum version 1.24)
Go version: go1.22.11
Git commit: 4c9b3b0
Built: Wed Jan 22 13:41:25 2025
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.7.25
GitCommit: bcc810d6b9066471b0b6fa75f557a15a1cbf31bb
runc:
Version: 1.1.12
GitCommit: v1.1.12-0-g51d5e946
docker-init:
Version: 0.19.0
GitCommit: de40ad0
docker info
Client:
Version: 27.5.1
Context: desktop-linux
Debug Mode: false
Plugins:
ai: Ask Gordon - Docker Agent (Docker Inc.)
Version: v0.7.3
Path: /Users/anzepecar/.docker/cli-plugins/docker-ai
buildx: Docker Buildx (Docker Inc.)
Version: v0.20.1-desktop.2
Path: /Users/anzepecar/.docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
Version: v2.32.4-desktop.1
Path: /Users/anzepecar/.docker/cli-plugins/docker-compose
debug: Get a shell into any image or container (Docker Inc.)
Version: 0.0.38
Path: /Users/anzepecar/.docker/cli-plugins/docker-debug
desktop: Docker Desktop commands (Beta) (Docker Inc.)
Version: v0.1.4
Path: /Users/anzepecar/.docker/cli-plugins/docker-desktop
dev: Docker Dev Environments (Docker Inc.)
Version: v0.1.2
Path: /Users/anzepecar/.docker/cli-plugins/docker-dev
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.27
Path: /Users/anzepecar/.docker/cli-plugins/docker-extension
feedback: Provide feedback, right in your terminal! (Docker Inc.)
Version: v1.0.5
Path: /Users/anzepecar/.docker/cli-plugins/docker-feedback
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.4.0
Path: /Users/anzepecar/.docker/cli-plugins/docker-init
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: /Users/anzepecar/.docker/cli-plugins/docker-sbom
scout: Docker Scout (Docker Inc.)
Version: v1.16.1
Path: /Users/anzepecar/.docker/cli-plugins/docker-scout
Server:
Containers: 5
Running: 1
Paused: 0
Stopped: 4
Images: 21
Server Version: 27.5.1
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Swarm: inactive
Runtimes: io.containerd.runc.v2 runc
Default Runtime: runc
Init Binary: docker-init
containerd version: bcc810d6b9066471b0b6fa75f557a15a1cbf31bb
runc version: v1.1.12-0-g51d5e946
init version: de40ad0
Security Options:
seccomp
Profile: unconfined
cgroupns
Kernel Version: 6.12.5-linuxkit
Operating System: Docker Desktop
OSType: linux
Architecture: aarch64
CPUs: 14
Total Memory: 15.6GiB
Name: docker-desktop
ID: ecb099ae-1ab5-49f7-bf44-74d26041a13f
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Labels:
com.docker.desktop.address=unix:///Users/anzepecar/Library/Containers/com.docker.docker/Data/docker-cli.sock
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
127.0.0.0/8
Live Restore Enabled: false
WARNING: daemon is not using the default seccomp profile
Diagnostics ID
1868CD3D-DA87-42B8-8AC0-F0B20CFA1675/20250228191005
Additional Info
There are a few ways to mitigate this issue:
- Use buildkit
- Remove the
--label parameter
- Remove
--platform parameter, build the image and then add the --platform parameter back. After this all future builds for this particular image will succeed.
- Use a VPN to change your location. We noticed that this issue only shows up in certain regions (confirmed broken around Lisbon, confirmed working around San Francisco) and I was able to resolve the problem by switching to a different location with a VPN 🤷♂️
- Switch from Docker Desktop to OrbStack (the issue doesn't reproduce in OrbStack).
We encountered this issue when using Prefect to build the image (original issue on Prefect). Prefect uses docker-py, which doesn't support buildkit.
I understand that this problem likely won't get fixed since it's only reproducible on the deprecated build backend, but we have spent a fair amount of time debugging this issue internally. I'm hoping this issue will save time to anyone else that stumbles into this problem!
Description
On my M3 Mac I am unable to build build a docker image if I use
--labeland--platform linux/amd64parameters when using the old build backend.Reproduce
Expected behavior
The image should be successfully built, but instead I get the following error
NotFound: content digesterror:docker version
Client: Version: 27.5.1 API version: 1.47 Go version: go1.22.11 Git commit: 9f9e405 Built: Wed Jan 22 13:37:19 2025 OS/Arch: darwin/arm64 Context: desktop-linux Server: Docker Desktop 4.38.0 (181591) Engine: Version: 27.5.1 API version: 1.47 (minimum version 1.24) Go version: go1.22.11 Git commit: 4c9b3b0 Built: Wed Jan 22 13:41:25 2025 OS/Arch: linux/arm64 Experimental: false containerd: Version: 1.7.25 GitCommit: bcc810d6b9066471b0b6fa75f557a15a1cbf31bb runc: Version: 1.1.12 GitCommit: v1.1.12-0-g51d5e946 docker-init: Version: 0.19.0 GitCommit: de40ad0docker info
Diagnostics ID
1868CD3D-DA87-42B8-8AC0-F0B20CFA1675/20250228191005
Additional Info
There are a few ways to mitigate this issue:
--labelparameter--platformparameter, build the image and then add the--platformparameter back. After this all future builds for this particular image will succeed.We encountered this issue when using Prefect to build the image (original issue on Prefect). Prefect uses docker-py, which doesn't support buildkit.
I understand that this problem likely won't get fixed since it's only reproducible on the deprecated build backend, but we have spent a fair amount of time debugging this issue internally. I'm hoping this issue will save time to anyone else that stumbles into this problem!