From f4e4cac0c86f0e16aac773083aebbfc0e7daea43 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. --- 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 bdc93f3643f1..0e4011a532b3 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