From b7b22c5814471e783fbba057cd2e7bb136b88260 Mon Sep 17 00:00:00 2001 From: adisbladis Date: Fri, 20 Nov 2020 11:57:56 +0100 Subject: dockerTools: Always cross compile for another arch in the cross example The example fails to build on aarch64, so lets cross build for gnu64. --- nixos/tests/docker-tools.nix | 6 +++--- pkgs/build-support/docker/examples.nix | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix index a20a08fc90d..8e0e82d64cc 100644 --- a/nixos/tests/docker-tools.nix +++ b/nixos/tests/docker-tools.nix @@ -237,14 +237,14 @@ import ./make-test-python.nix ({ pkgs, ... }: { with subtest("Ensure cross compiled image can be loaded and has correct arch."): docker.succeed( - "docker load --input='${pkgs.dockerTools.examples.cross-aarch64}'", + "docker load --input='${pkgs.dockerTools.examples.cross}'", ) assert ( docker.succeed( - "docker inspect ${pkgs.dockerTools.examples.cross-aarch64.imageName} " + "docker inspect ${pkgs.dockerTools.examples.cross.imageName} " + "| ${pkgs.jq}/bin/jq -r .[].Architecture" ).strip() - == "arm64v8" + == "${if pkgs.system == "aarch64-linux" then "amd64" else "arm64v8"}" ) ''; }) diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix index cd91c721241..3f30f1a2adb 100644 --- a/pkgs/build-support/docker/examples.nix +++ b/pkgs/build-support/docker/examples.nix @@ -408,10 +408,15 @@ rec { }; # basic example, with cross compilation - cross-aarch64 = pkgsCross.aarch64-multiplatform.dockerTools.buildImage { + cross = let + # Cross compile for x86_64 if on aarch64 + crossPkgs = + if pkgs.system == "aarch64-linux" then pkgsCross.gnu64 + else pkgsCross.aarch64-multiplatform; + in crossPkgs.dockerTools.buildImage { name = "hello-cross"; tag = "latest"; - contents = pkgsCross.aarch64-multiplatform.hello; + contents = crossPkgs.hello; }; } -- cgit 1.4.1