Skip to content

static: add windows/arm64 client package - #1364

Closed
fiodortretyakov wants to merge 1 commit into
docker:masterfrom
fiodortretyakov:static-windows-arm64
Closed

fiodortretyakov wants to merge 1 commit into
docker:masterfrom
fiodortretyakov:static-windows-arm64

Conversation

@fiodortretyakov

Copy link
Copy Markdown

- What I did

Added a windows/arm64 client package to the cross-win target: the CLI is built for windows/arm64 with the same bake target as amd64 and zipped as build/win/arm64/docker-<version>.zip. It holds docker.exe only, since dockerd isn't built for windows/arm64.

docker/cli already builds windows/arm64 (cross and bin-image-cross in its docker-bake.hcl), but https://download.docker.com/win/static/stable/ only has x86_64/, so a Windows on Arm machine has no native CLI to use with an engine in WSL 2 or on a remote host. winget's Docker.DockerCLI is built from these zips, so it is x64 only as well.

Publishing also needs the release pipeline to upload build/win/arm64 to win/static/stable/aarch64/, the way build/mac/arm64 goes to mac/static/stable/aarch64/. That pipeline isn't public, so that part isn't in this PR.

- How I verified it

make DOCKER_CLI_REF=v29.9.2 checkout-cli, then make -C static -o cross-win-engine cross-win VERSION=29.9.2, on an arm64 Linux engine. -o cross-win-engine skips the Windows engine build; dockerd.exe came from the released 29.9.2 zip. Both zips are produced, and the amd64 one has the same layout as the released zip.

docker.exe from build/win/arm64/docker-29.9.2.zip is an ARM64 binary and runs natively on Windows 11 arm64 (Snapdragon X Elite) against Docker Engine 29.9.2 in WSL 2 over TLS: docker version shows OS/Arch: windows/arm64, and docker info, docker run --rm, docker cp in both directions (files and directories, Windows paths) and bind mounts (-v and --mount) work.

- Description for the changelog

Add a static Docker CLI package for Windows on Arm (windows/arm64)

The cross-win target now also builds the CLI for windows/arm64 and
packages it as build/win/arm64/docker-<version>.zip, next to the amd64
zip. The arm64 package has docker.exe only, as dockerd is not built for
windows/arm64.

docker/cli already builds windows/arm64 (its "cross" and "bin-image-cross"
bake targets), but download.docker.com/win/static/stable/ only has
x86_64, so there is no static CLI for Windows on Arm.

Signed-off-by: Fiodor Tretyakov <fiodor.tretyakov@gmail.com>
@fiodortretyakov

Copy link
Copy Markdown
Author

Closing this as superseded: docker-ce-packaging is deprecated in favor of docker/packaging (#1366), which already builds the windows/arm64 static packages, and download.docker.com/win/static/test/aarch64/ has 29.10.0-rc.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant