Dockerfile: remove hardcoded platforms for vpnkit stage
As discussed, start splitting https://github.com/moby/moby/pull/43529 into several PRs to ease peer review.

___

Current Dockerfile downloads vpnkit for both linux/amd64 and linux/arm64 platforms even if target platform does not match. This change will download vpnkit only if target platform matches.

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
hack/make/binary-daemon
#!/usr/bin/env bash
set -e

copy_binaries() {
	local dir="$1"

	# Add nested executables to bundle dir so we have complete set of
	# them available, but only if the native OS/ARCH is the same as the
	# OS/ARCH of the build target
	if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then
		return
	fi
	if [ ! -x /usr/local/bin/runc ]; then
		return
	fi
	echo "Copying nested executables into $dir"
	for file in containerd containerd-shim-runc-v2 ctr runc docker-init rootlesskit rootlesskit-docker-proxy dockerd-rootless.sh dockerd-rootless-setuptool.sh; do
		cp -f "$(command -v "$file")" "$dir/"
	done

	# vpnkit is available for x86_64 and aarch64
	if command -v "vpnkit.$(uname -m)" 2>&1 > /dev/null; then
		cp -f "$(command -v "vpnkit.$(uname -m)")" "$dir/vpnkit"
	fi
}

[ -z "$KEEPDEST" ] && rm -rf "$DEST"

(
	GO_PACKAGE='github.com/docker/docker/cmd/dockerd'
	BINARY_NAME='dockerd'

	source "${MAKEDIR}/.binary"
	copy_binaries "$DEST"
)

#!/usr/bin/env bash
set -e

copy_binaries() {
	local dir="$1"

	# Add nested executables to bundle dir so we have complete set of
	# them available, but only if the native OS/ARCH is the same as the
	# OS/ARCH of the build target
	if [ "$(go env GOOS)/$(go env GOARCH)" != "$(go env GOHOSTOS)/$(go env GOHOSTARCH)" ]; then
		return
	fi
	if [ ! -x /usr/local/bin/runc ]; then
		return
	fi
	echo "Copying nested executables into $dir"
	for file in containerd containerd-shim-runc-v2 ctr runc docker-init rootlesskit rootlesskit-docker-proxy dockerd-rootless.sh dockerd-rootless-setuptool.sh; do
		cp -f "$(command -v "$file")" "$dir/"
	done
	# vpnkit might not be available for the target platform, see vpnkit stage in
	# the Dockerfile for more information.
	if command -v vpnkit > /dev/null 2>&1; then
		cp -f "$(command -v vpnkit)" "$dir/"
	fi
}

[ -z "$KEEPDEST" ] && rm -rf "$DEST"

(
	GO_PACKAGE='github.com/docker/docker/cmd/dockerd'
	BINARY_NAME='dockerd'

	source "${MAKEDIR}/.binary"
	copy_binaries "$DEST"
)

Not sure that makes sense to keep this comment anymore since it's picked up dynamically based on the target platform. Let me know if that make sense to add a comment in the Dockerfile.