mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
This fixes a regression introduced in6d87f19142, causing `COPY --from` to fail if the target directory does not exist: ``` FROM mcr.microsoft.com/windows/servercore:ltsc2019 as s1 RUN echo "Hello World" > /hello FROM mcr.microsoft.com/windows/servercore:ltsc2019 COPY --from=s1 /hello /hello/another/world ``` Would produce an error: ``` Step 4/4 : COPY --from=s1 /hello /hello/another/world failed to copy files: mkdir \\?: The filename, directory name, or volume label syntax is incorrect. ``` The cause for this was that Go's `os.MkdirAll()` does not support/detect volume GUID paths (`\\?\Volume{dae8d3ac-b9a1-11e9-88eb-e8554b2ba1db}\hello\another}`), and as a result attempted to create the volume as a directory (`\\?`), causing it to fail. This patch replaces `os.MkdirAll()` with our own `system.MkdirAll()` function, which is capable of detecting GUID volumes. Signed-off-by: Sebastiaan van Stijn <github@gone.nl> (cherry picked from commit5858a99267) Signed-off-by: Sebastiaan van Stijn <github@gone.nl>