From ddd92a11cf4386acfcc9e473e612a2c4e712cda2 Mon Sep 17 00:00:00 2001 From: Andrew Brooks Date: Fri, 3 Feb 2023 17:50:36 -0600 Subject: [PATCH] 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. (cherry picked from commit f4e4cac0c86f0e16aac773083aebbfc0e7daea43) --- pkgs/build-support/docker/default.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index 394cb186b052..1feecc915e90 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -258,13 +258,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