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 f4e4cac0c8)
This commit is contained in:
Andrew Brooks
2023-02-03 17:50:36 -06:00
committed by github-actions[bot]
parent 21f73e6d77
commit ddd92a11cf

View File

@@ -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