summary refs log tree commit diff
path: root/pkgs/build-support/docker/default.nix
diff options
context:
space:
mode:
authorAndrew Brooks <andrewgrantbrooks@gmail.com>2023-02-03 17:50:36 -0600
committerAndrew Brooks <andrewgrantbrooks@gmail.com>2023-02-03 17:50:36 -0600
commitf4e4cac0c86f0e16aac773083aebbfc0e7daea43 (patch)
treecd7a2b27a71ad871aa6d591e59ace8b53c1a4329 /pkgs/build-support/docker/default.nix
parent6f63865cf470ce99b36bceacbefbb6886d05be51 (diff)
downloadnixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.tar
nixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.tar.gz
nixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.tar.bz2
nixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.tar.lz
nixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.tar.xz
nixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.tar.zst
nixpkgs-f4e4cac0c86f0e16aac773083aebbfc0e7daea43.zip
dockerTools: Correctly unpack duplicate rootfs diffs
This PR addresses issue #214434 by preventing
dockerTools.buildImage from deleting rootfs diffs until after
they've been unpacked.
Diffstat (limited to 'pkgs/build-support/docker/default.nix')
-rw-r--r--pkgs/build-support/docker/default.nix3
1 files changed, 2 insertions, 1 deletions
diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix
index bdc93f3643f..0e4011a532b 100644
--- a/pkgs/build-support/docker/default.nix
+++ b/pkgs/build-support/docker/default.nix
@@ -259,13 +259,14 @@ rec {
 
             mkdir -p image/$extractionID/layer
             tar -C image/$extractionID/layer -xpf image/$layerTar
-            rm image/$layerTar
 
             find image/$extractionID/layer -name ".wh.*" -exec bash -c 'name="$(basename {}|sed "s/^.wh.//")"; mknod "$(dirname {})/$name" c 0 0; rm {}' \;
 
             # Get the next lower directory and continue the loop.
             lowerdir=image/$extractionID/layer''${lowerdir:+:}$lowerdir
           done
+          # Don't remove tarballs until all unpacked in case some are used more than once
+          awk '{print "image/"$0}' layer-list | xargs rm -f
 
           mkdir work
           mkdir layer