summary refs log tree commit diff
path: root/pkgs/build-support
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-03-08 18:01:34 +0000
committerGitHub <noreply@github.com>2023-03-08 18:01:34 +0000
commit7072ae38b6f9a65b87a1cc37af07d61499210fa1 (patch)
treeb7b5b48536a54e57511895a7e14656a19c5ad064 /pkgs/build-support
parent644e671d8012402b148df40d644cb2ba7892d034 (diff)
parent1e383aada51b416c6c27d4884d2e258df201bc11 (diff)
downloadnixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.tar
nixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.tar.gz
nixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.tar.bz2
nixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.tar.lz
nixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.tar.xz
nixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.tar.zst
nixpkgs-7072ae38b6f9a65b87a1cc37af07d61499210fa1.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/build-support')
-rw-r--r--pkgs/build-support/docker/default.nix12
1 files changed, 11 insertions, 1 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index bdc93f3643f..7fa5aeafc8e 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -229,6 +229,15 @@ rec {
           mount /dev/${vmTools.hd} disk
           cd disk
 
+          function dedup() {
+            declare -A seen
+            while read ln; do
+              if [[ -z "''${seen["$ln"]:-}" ]]; then
+                echo "$ln"; seen["$ln"]=1
+              fi
+            done
+          }
+
           if [[ -n "$fromImage" ]]; then
             echo "Unpacking base image..."
             mkdir image
@@ -245,7 +254,8 @@ rec {
               parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')"
             fi
 
-            cat ./image/manifest.json  | jq -r '.[0].Layers | .[]' > layer-list
+            # In case of repeated layers, unpack only the last occurrence of each
+            cat ./image/manifest.json  | jq -r '.[0].Layers | .[]' | tac | dedup | tac > layer-list
           else
             touch layer-list
           fi