dockerTools: normalize arch to GOARCH

Docker (via containerd) and the the OCI Image Configuration imply and
suggest, respectfully, that the architecture set in images matches those
of GOARCH in the Go Language document.

This changeset updates the implimentation of getArch in dockerTools to
return GOARCH values, to satisfy Docker.

Fixes: #106695
This commit is contained in:
Terin Stock 2020-12-11 18:54:44 -08:00
parent 46e2a315ad
commit 8f66dc94a7
2 changed files with 7 additions and 7 deletions

View file

@ -245,7 +245,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
"docker inspect ${pkgs.dockerTools.examples.cross.imageName} "
+ "| ${pkgs.jq}/bin/jq -r .[].Architecture"
).strip()
== "${if pkgs.system == "aarch64-linux" then "amd64" else "arm64v8"}"
== "${if pkgs.system == "aarch64-linux" then "amd64" else "arm64"}"
)
'';
})

View file

@ -58,15 +58,15 @@ let
done;
'';
# Map nixpkgs architecture to Docker notation
# Reference: https://github.com/docker-library/official-images#architectures-other-than-amd64
# Map nixpkgs architecture to OCI recomendation
# Reference: https://github.com/opencontainers/image-spec/blob/master/config.md#properties
getArch = nixSystem: {
aarch64-linux = "arm64v8";
armv7l-linux = "arm32v7";
aarch64-linux = "arm64";
armv7l-linux = "arm";
x86_64-linux = "amd64";
powerpc64le-linux = "ppc64le";
i686-linux = "i386";
}.${nixSystem} or "Can't map Nix system ${nixSystem} to Docker architecture notation. Please check that your input and your requested build are correct or update the mapping in Nixpkgs.";
i686-linux = "386";
}.${nixSystem} or "Can't map Nix system ${nixSystem} to Docker architecture. Please check that your input and your requested build are correct or update the mapping in Nixpkgs.";
in
rec {