Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WCOW can only use the local exporter if there are no nested directories in the layer #4866

Closed
fruzitent opened this issue Apr 22, 2024 · 6 comments

Comments

@fruzitent
Copy link

fruzitent commented Apr 22, 2024

FROM scratch
COPY <<EOF "C:/hello.txt"
Hello, world!
EOF
1. scratch - successfully exports file in the root
PS>docker buildx build . --file ".\Dockerfile" --no-cache --progress "plain" --output "dest=./out/,type=local"
#0 building with "buildkit-exp" instance using remote driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 93B 0.0s done
#1 DONE 0.1s

#2 [internal] load .dockerignore
#2 transferring context: 2B done
#2 DONE 0.0s

#3 [internal] preparing inline document
#3 CACHED

#4 [1/1] COPY <<EOF C:/hello.txt
#4 DONE 0.1s

#5 exporting to client directory
#5 copying files 45B done
#5 DONE 0.0s

View build details: docker-desktop://dashboard/build/buildkit-exp/buildkit-exp0/0evhsyai3xt8n7tkzau1lk6rc

PS>ls .\out\

    Directory: C:\dev\wcow-test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           4/23/2024  1:27 AM             14 hello.txt
time="2024-04-23T01:27:18.229210700+03:00" level=debug msg="get snapshot mounts" key=0jbm507h0uwvnz0y7sa6zudri
time="2024-04-23T01:27:18.288465300+03:00" level=debug msg="get snapshot mounts" key=0jbm507h0uwvnz0y7sa6zudri
time="2024-04-23T01:27:18.303152400+03:00" level=debug msg="get snapshot mounts" key=kug35jrk01jt2qq5p3xli51y5
time="2024-04-23T01:27:18.343731900+03:00" level=debug msg="get snapshot mounts" key=kug35jrk01jt2qq5p3xli51y5
time="2024-04-23T01:27:18.354660400+03:00" level=debug msg="get snapshot mounts" key=lxq6u0ajk2yz82d4ayrhmhgo2
time="2024-04-23T01:27:18.369410200+03:00" level=debug msg="prepare snapshot" key=6nraui0zmxo9wiokqkd991z7z parent=
time="2024-04-23T01:27:18.375381100+03:00" level=debug msg=createSnapshot
time="2024-04-23T01:27:18.408202900+03:00" level=debug msg="get snapshot mounts" key=6nraui0zmxo9wiokqkd991z7z
time="2024-04-23T01:27:18.469041300+03:00" level=debug msg="get snapshot mounts" key=6nraui0zmxo9wiokqkd991z7z
time="2024-04-23T01:27:18.487500600+03:00" level=debug msg="(*service).Write started" ref=history-ref_479515500-7EFo
time="2024-04-23T01:27:18.541715600+03:00" level=debug msg="(*service).Write started" ref=history-ref_535707100-uS8x
{"level":"debug","msg":"session started","time":"2024-04-23T01:27:17+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:27:17+03:00"}
{"level":"debug","msg":"session started","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"session started","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"reusing ref for local: 0jbm507h0uwvnz0y7sa6zudri","span":"[internal] load build definition from Dockerfile","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"diffcopy took: 14.8541ms","span":"[internal] load build definition from Dockerfile","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"reusing ref for local: kug35jrk01jt2qq5p3xli51y5","span":"[internal] load .dockerignore","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"diffcopy took: 2.1609ms","span":"[internal] load .dockerignore","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"load cache for [internal] preparing inline document with 6w6kvn409fd59a2jmadakuv7n::o6cr4owcfe4xiiwi1jx3kcshv","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:27:18+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:27:18+03:00"}
FROM scratch
COPY <<EOF "C:/foo/hello.txt"
Hello, world!
EOF
2. scratch - fails to export as there is a nested directory
PS>docker buildx build . --file ".\Dockerfile" --no-cache --progress "plain" --output "dest=./out/,type=local"
#0 building with "buildkit-exp" instance using remote driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 98B done
#1 DONE 0.0s

#2 [internal] load .dockerignore
#2 transferring context: 2B 0.0s done
#2 DONE 0.0s

#3 [internal] preparing inline document
#3 CACHED

#4 [1/1] COPY <<EOF C:/foo/hello.txt
#4 DONE 0.1s

#5 exporting to client directory
#5 copying files 55B done
#5 CANCELED
ERROR: failed to solve: error from receiver: context canceled

View build details: docker-desktop://dashboard/build/buildkit-exp/buildkit-exp0/mwdhhftacgd6mnx3zh9ehwrt8

PS>ls .\out\

    Directory: C:\dev\wcow-test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           4/23/2024  1:29 AM                foo

PS>ls .\out\foo\
time="2024-04-23T01:29:30.503604700+03:00" level=debug msg="get snapshot mounts" key=0jbm507h0uwvnz0y7sa6zudri
time="2024-04-23T01:29:30.561684000+03:00" level=debug msg="get snapshot mounts" key=kug35jrk01jt2qq5p3xli51y5
time="2024-04-23T01:29:30.568780800+03:00" level=debug msg="get snapshot mounts" key=4zjm3xxex5ppdi7awtvbtlbxx
time="2024-04-23T01:29:30.582066700+03:00" level=debug msg="prepare snapshot" key=p6pl2xzbdkchskutl8y971y9p parent=
time="2024-04-23T01:29:30.588344700+03:00" level=debug msg=createSnapshot
time="2024-04-23T01:29:30.619358600+03:00" level=debug msg="get snapshot mounts" key=p6pl2xzbdkchskutl8y971y9p
time="2024-04-23T01:29:30.660586700+03:00" level=debug msg="get snapshot mounts" key=p6pl2xzbdkchskutl8y971y9p
time="2024-04-23T01:29:30.679431100+03:00" level=debug msg="(*service).Write started" ref=history-ref_667354900-mLig
time="2024-04-23T01:29:30.724348600+03:00" level=debug msg="(*service).Write started" ref=history-ref_718408300-FKK2
{"level":"debug","msg":"session started","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"session started","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"session started","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"reusing ref for local: 0jbm507h0uwvnz0y7sa6zudri","span":"[internal] load build definition from Dockerfile","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"diffcopy took: 5.4809ms","span":"[internal] load build definition from Dockerfile","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"reusing ref for local: kug35jrk01jt2qq5p3xli51y5","span":"[internal] load .dockerignore","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"diffcopy took: 9.8142ms","span":"[internal] load .dockerignore","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"load cache for [internal] preparing inline document with 6w6kvn409fd59a2jmadakuv7n::l37dyl5whipkaztbm9rqvytw5","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:29:30+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:29:30+03:00"}
{"level":"error","msg":"/moby.buildkit.v1.Control/Solve returned error: rpc error: code = Unknown desc = error from receiver: context canceled","time":"2024-04-23T01:29:30+03:00"}
error from receiver: context canceled
16924 v0.0.0+unknown C:\Users\fruzitent\.local\opt\buildkit\cmd\buildkitd\__debug_bin1075689492.exe
github.com/tonistiigi/fsutil.(*sender).run.func3
C:/Users/fruzitent/.local/opt/buildkit/vendor/github.com/tonistiigi/fsutil/send.go:100
golang.org/x/sync/errgroup.(*Group).Go.func1
C:/Users/fruzitent/.local/opt/buildkit/vendor/golang.org/x/sync/errgroup/errgroup.go:75
runtime.goexit
C:/Program Files/Go/src/runtime/asm_amd64.s:1695

16924 v0.0.0+unknown C:\Users\fruzitent\.local\opt\buildkit\cmd\buildkitd\__debug_bin1075689492.exe
github.com/moby/buildkit/session/filesync.sendDiffCopy
C:/Users/fruzitent/.local/opt/buildkit/session/filesync/diffcopy.go:25
github.com/moby/buildkit/session/filesync.CopyToCaller
C:/Users/fruzitent/.local/opt/buildkit/session/filesync/filesync.go:365
github.com/moby/buildkit/exporter/local.(*localExporterInstance).Export.func1.1
C:/Users/fruzitent/.local/opt/buildkit/exporter/local/export.go:158
golang.org/x/sync/errgroup.(*Group).Go.func1
C:/Users/fruzitent/.local/opt/buildkit/vendor/golang.org/x/sync/errgroup/errgroup.go:75
runtime.goexit
C:/Program Files/Go/src/runtime/asm_amd64.s:1695

16924 v0.0.0+unknown C:\Users\fruzitent\.local\opt\buildkit\cmd\buildkitd\__debug_bin1075689492.exe
main.unaryInterceptor
C:/Users/fruzitent/.local/opt/buildkit/cmd/buildkitd/main.go:670
google.golang.org/grpc.chainUnaryInterceptors.func1
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:1154
github.com/moby/buildkit/api/services/control._Control_Solve_Handler
C:/Users/fruzitent/.local/opt/buildkit/api/services/control/control.pb.go:2466
google.golang.org/grpc.(*Server).processUnaryRPC
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:1343
google.golang.org/grpc.(*Server).handleStream
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:1737
google.golang.org/grpc.(*Server).serveStreams.func1.1
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:986
runtime.goexit
C:/Program Files/Go/src/runtime/asm_amd64.s:1695
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:29:30+03:00"}
FROM mcr.microsoft.com/windows/nanoserver:ltsc2022
3. nanoserver - same as №2
PS>docker buildx build . --file ".\Dockerfile" --no-cache --progress "plain" --output "dest=./out/,type=local"
#0 building with "buildkit-exp" instance using remote driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 88B done
#1 DONE 0.0s

#2 [internal] load metadata for mcr.microsoft.com/windows/nanoserver:ltsc2022
#2 DONE 0.1s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [1/1] FROM mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d
#4 resolve mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d 0.1s done
#4 DONE 0.1s

#4 [1/1] FROM mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d
#4 CACHED

#5 exporting to client directory
#5 copying files 195B done
#5 CANCELED
ERROR: failed to solve: error from receiver: context canceled

View build details: docker-desktop://dashboard/build/buildkit-exp/buildkit-exp0/gutcurr9gwpooh1c54nrl4rp2

PS>ls .\out\

    Directory: C:\dev\wcow-test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---            4/5/2024 11:51 AM              0 License.txt
time="2024-04-23T01:38:22.476824100+03:00" level=debug msg="get snapshot mounts" key=0jbm507h0uwvnz0y7sa6zudri
time="2024-04-23T01:38:22.565486500+03:00" level=debug msg="(*service).Write started" expected="sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d" ref="index-sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d" total=350
time="2024-04-23T01:38:22.581753600+03:00" level=debug msg="(*service).Write started" expected="sha256:d571070522e80688c8d66a10c1695948f88adef94924f55b76d6ec6d5dc5008a" ref="manifest-sha256:d571070522e80688c8d66a10c1695948f88adef94924f55b76d6ec6d5dc5008a" total=429
time="2024-04-23T01:38:22.597023100+03:00" level=debug msg="(*service).Write started" expected="sha256:d1e8c66ca6cc8b4b9b737ed9fd5ae8dff85cd0db8cc1cdea54a8a153acb39797" ref="config-sha256:d1e8c66ca6cc8b4b9b737ed9fd5ae8dff85cd0db8cc1cdea54a8a153acb39797" total=638
time="2024-04-23T01:38:22.653285400+03:00" level=debug msg="get snapshot mounts" key=kug35jrk01jt2qq5p3xli51y5
time="2024-04-23T01:38:22.668898000+03:00" level=debug msg="(*service).Write started" expected="sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d" ref="index-sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d" total=350
time="2024-04-23T01:38:22.683095100+03:00" level=debug msg="(*service).Write started" expected="sha256:d571070522e80688c8d66a10c1695948f88adef94924f55b76d6ec6d5dc5008a" ref="manifest-sha256:d571070522e80688c8d66a10c1695948f88adef94924f55b76d6ec6d5dc5008a" total=429
time="2024-04-23T01:38:22.697026500+03:00" level=debug msg="(*service).Write started" expected="sha256:d1e8c66ca6cc8b4b9b737ed9fd5ae8dff85cd0db8cc1cdea54a8a153acb39797" ref="config-sha256:d1e8c66ca6cc8b4b9b737ed9fd5ae8dff85cd0db8cc1cdea54a8a153acb39797" total=638
time="2024-04-23T01:38:22.853906800+03:00" level=debug msg="(*service).Write started" ref=history-ref_846969700-Ysz1
time="2024-04-23T01:38:22.895121200+03:00" level=debug msg="(*service).Write started" ref=history-ref_874933500-j5s5
{"level":"debug","msg":"session started","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"session started","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"session started","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"reusing ref for local: 0jbm507h0uwvnz0y7sa6zudri","span":"[internal] load build definition from Dockerfile","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"diffcopy took: 6.0415ms","span":"[internal] load build definition from Dockerfile","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:38:22+03:00"}
{"cached":true,"key":"mcr.microsoft.com/windows/nanoserver::pull","level":"debug","msg":"checked for cached auth handler namespace","name":"mcr.microsoft.com/windows/nanoserver","scope":"pull","time":"2024-04-23T01:38:22+03:00"}
{"host":"mcr.microsoft.com","level":"debug","msg":"resolving","time":"2024-04-23T01:38:22+03:00"}
{"host":"mcr.microsoft.com","level":"debug","msg":"do request","request.header.accept":"application/vnd.docker.distribution.manifest.v2+json, application/vnd.docker.distribution.manifest.list.v2+json, application/vnd.oci.image.manifest.v1+json, application/vnd.oci.image.index.v1+json, */*","request.header.user-agent":"buildkit/v0.0-dev","request.method":"HEAD","time":"2024-04-23T01:38:22+03:00","url":"https://mcr.microsoft.com/v2/windows/nanoserver/manifests/ltsc2022"}
{"host":"mcr.microsoft.com","level":"debug","msg":"fetch response received","response.header.access-control-expose-headers":"Docker-Content-Digest","response.header.access-control-expose-headers.1":"WWW-Authenticate","response.header.access-control-expose-headers.2":"Link","response.header.access-control-expose-headers.3":"X-Ms-Correlation-Request-Id","response.header.content-length":"350","response.header.content-type":"application/vnd.docker.distribution.manifest.list.v2+json","response.header.date":"Mon, 22 Apr 2024 22:38:20 GMT","response.header.docker-content-digest":"sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d","response.header.docker-distribution-api-version":"registry/2.0","response.header.etag":"\"sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d\"","response.header.strict-transport-security":"max-age=31536000; includeSubDomains","response.header.strict-transport-security.1":"max-age=31536000; includeSubDomains","response.header.x-cache":"CONFIG_NOCACHE","response.header.x-content-type-options":"nosniff","response.header.x-mcr-env":"prod","response.header.x-mcr-privacy":"https://privacy.microsoft.com/en-us/privacystatement","response.header.x-ms-client-request-id":"","response.header.x-ms-correlation-request-id":"ad800dac-dff7-4bcc-b800-bcff00599fd9","response.header.x-ms-request-id":"d8ebb795-5028-49b6-b5e7-3fd9ac3a7772","response.header.x-msedge-ref":"Ref A: 9C9BD8D487904D57AA11A3C0BBE88CA7 Ref B: WAW01EDGE0319 Ref C: 2024-04-22T22:38:20Z","response.status":"200 OK","time":"2024-04-23T01:38:22+03:00","url":"https://mcr.microsoft.com/v2/windows/nanoserver/manifests/ltsc2022"}
{"desc.digest":"sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d","host":"mcr.microsoft.com","level":"debug","msg":"resolved","time":"2024-04-23T01:38:22+03:00"}
{"digest":"sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d","level":"debug","mediatype":"application/vnd.docker.distribution.manifest.list.v2+json","msg":"fetch","size":350,"time":"2024-04-23T01:38:22+03:00"}
{"digest":"sha256:d571070522e80688c8d66a10c1695948f88adef94924f55b76d6ec6d5dc5008a","level":"debug","mediatype":"application/vnd.docker.distribution.manifest.v2+json","msg":"fetch","size":429,"time":"2024-04-23T01:38:22+03:00"}
{"digest":"sha256:d1e8c66ca6cc8b4b9b737ed9fd5ae8dff85cd0db8cc1cdea54a8a153acb39797","level":"debug","mediatype":"application/vnd.docker.container.image.v1+json","msg":"fetch","size":638,"time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"reusing ref for local: kug35jrk01jt2qq5p3xli51y5","span":"[internal] load .dockerignore","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"diffcopy took: 2.1138ms","span":"[internal] load .dockerignore","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:38:22+03:00"}
{"cached":true,"key":"mcr.microsoft.com/windows/nanoserver::pull","level":"debug","msg":"checked for cached auth handler namespace","name":"mcr.microsoft.com/windows/nanoserver","scope":"pull","time":"2024-04-23T01:38:22+03:00"}
{"digest":"sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d","level":"debug","mediatype":"application/vnd.docker.distribution.manifest.list.v2+json","msg":"fetch","size":350,"time":"2024-04-23T01:38:22+03:00"}
{"digest":"sha256:d571070522e80688c8d66a10c1695948f88adef94924f55b76d6ec6d5dc5008a","level":"debug","mediatype":"application/vnd.docker.distribution.manifest.v2+json","msg":"fetch","size":429,"time":"2024-04-23T01:38:22+03:00"}
{"digest":"sha256:d1e8c66ca6cc8b4b9b737ed9fd5ae8dff85cd0db8cc1cdea54a8a153acb39797","level":"debug","mediatype":"application/vnd.docker.container.image.v1+json","msg":"fetch","size":638,"time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"load cache for [1/1] FROM mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:6223f3a17f2652064c56ca55aaef866177d58d6a1c526636ac2120685df5466d with 6w6kvn409fd59a2jmadakuv7n::3x70wlz5lyix8ey9rwcwuqt72","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (1)","time":"2024-04-23T01:38:22+03:00"}
{"level":"debug","msg":"Calling proc (2)","time":"2024-04-23T01:38:22+03:00"}
{"level":"error","msg":"/moby.buildkit.v1.Control/Solve returned error: rpc error: code = Unknown desc = error from receiver: context canceled","time":"2024-04-23T01:38:22+03:00"}
error from receiver: context canceled
16924 v0.0.0+unknown C:\Users\fruzitent\.local\opt\buildkit\cmd\buildkitd\__debug_bin1075689492.exe
github.com/tonistiigi/fsutil.(*sender).run.func3
C:/Users/fruzitent/.local/opt/buildkit/vendor/github.com/tonistiigi/fsutil/send.go:100
golang.org/x/sync/errgroup.(*Group).Go.func1
C:/Users/fruzitent/.local/opt/buildkit/vendor/golang.org/x/sync/errgroup/errgroup.go:75
runtime.goexit
C:/Program Files/Go/src/runtime/asm_amd64.s:1695

16924 v0.0.0+unknown C:\Users\fruzitent\.local\opt\buildkit\cmd\buildkitd\__debug_bin1075689492.exe
github.com/moby/buildkit/session/filesync.sendDiffCopy
C:/Users/fruzitent/.local/opt/buildkit/session/filesync/diffcopy.go:25
github.com/moby/buildkit/session/filesync.CopyToCaller
C:/Users/fruzitent/.local/opt/buildkit/session/filesync/filesync.go:365
github.com/moby/buildkit/exporter/local.(*localExporterInstance).Export.func1.1
C:/Users/fruzitent/.local/opt/buildkit/exporter/local/export.go:158
golang.org/x/sync/errgroup.(*Group).Go.func1
C:/Users/fruzitent/.local/opt/buildkit/vendor/golang.org/x/sync/errgroup/errgroup.go:75
runtime.goexit
C:/Program Files/Go/src/runtime/asm_amd64.s:1695

16924 v0.0.0+unknown C:\Users\fruzitent\.local\opt\buildkit\cmd\buildkitd\__debug_bin1075689492.exe
main.unaryInterceptor
C:/Users/fruzitent/.local/opt/buildkit/cmd/buildkitd/main.go:670
google.golang.org/grpc.chainUnaryInterceptors.func1
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:1154
github.com/moby/buildkit/api/services/control._Control_Solve_Handler
C:/Users/fruzitent/.local/opt/buildkit/api/services/control/control.pb.go:2466
google.golang.org/grpc.(*Server).processUnaryRPC
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:1343
google.golang.org/grpc.(*Server).handleStream
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:1737
google.golang.org/grpc.(*Server).serveStreams.func1.1
C:/Users/fruzitent/.local/opt/buildkit/vendor/google.golang.org/grpc/server.go:986
runtime.goexit
C:/Program Files/Go/src/runtime/asm_amd64.s:1695
{"level":"debug","msg":"session finished: \u003cnil\u003e","time":"2024-04-23T01:38:22+03:00"}
FROM docker.io/library/alpine:3.19
4. alpine - successfully exports sysroot, something №3 should've done
$ docker buildx build . --file "./Dockerfile" --no-cache --progress "plain" --output "dest=./out/,type=local"
#0 building with "default" instance using docker driver

#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 72B 0.0s done
#1 DONE 0.1s

#2 [internal] load metadata for docker.io/library/alpine:3.19
#2 ...

#3 [auth] library/alpine:pull token for registry-1.docker.io
#3 DONE 0.0s

#2 [internal] load metadata for docker.io/library/alpine:3.19
#2 DONE 2.7s

#4 [internal] load .dockerignore
#4 transferring context: 0.0s
#4 transferring context: 2B 0.0s done
#4 DONE 0.1s

#5 [1/1] FROM docker.io/library/alpine:3.19@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
#5 resolve docker.io/library/alpine:3.19@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b 0.1s done
#5 DONE 0.1s

#5 [1/1] FROM docker.io/library/alpine:3.19@sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
#5 sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 0B / 3.41MB 0.2s
#5 sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 2.10MB / 3.41MB 0.3s
#5 sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 3.41MB / 3.41MB 0.4s done
#5 extracting sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8
#5 extracting sha256:4abcf20661432fb2d719aaf90656f55c287f8ca915dc1c92ec14ff61e67fbaf8 0.2s done
#5 DONE 0.8s

#6 exporting to client directory
#6 copying files 58.58kB 0.1s
#6 copying files 7.21MB 5.2s
#6 copying files 7.40MB 7.5s done
#6 DONE 8.2s

$ du -h --max-depth=1 ./out/
792K    ./out/bin
0       ./out/dev
312K    ./out/etc
0       ./out/home
5.6M    ./out/lib
0       ./out/media
0       ./out/mnt
0       ./out/opt
0       ./out/proc
0       ./out/root
0       ./out/run
72K     ./out/sbin
0       ./out/srv
0       ./out/sys
0       ./out/tmp
424K    ./out/usr
0       ./out/var
7.2M    ./out/
$ git describe --always --tags
v0.13.0-rc3-179-g108cd5000
@profnandaa
Copy link
Collaborator

profnandaa commented May 14, 2024

cross-linking with docker/buildx#2433 /cc. @danielGithinji

@danielGithinji
Copy link

danielGithinji commented Jun 27, 2024

@fruzitent The version of buildkit in docker desktop is behind in the latest fixes/features compared to the stand alone buildkit version. That being said I was able to repro the issue that you have mentioned using version 0.13.1 of the stand alone buildkit version.
Any version of buildkit after version 0.13.1 fixes the issue that you have mentioned in this commit.

Once you have downloaded the latest version of buildkit run it using the following command:

buildctl  build `
  --frontend dockerfile.v0 `
  --local context=. `
  --local dockerfile=. `
  --output type=local,dest=./out `
  --progress plain `
  --no-cache

The docker file I used is as follows:

FROM mcr.microsoft.com/windows/nanoserver:ltsc2022
COPY <<EOF "C:/foo/hello.txt"
Hello, world!
EOF

The output you expect to have will look like the following:

buildctl  build `
>>   --frontend dockerfile.v0 `
>>   --local context=. `
>>   --local dockerfile=. `
>>   --output type=local,dest=./out `
>>   --progress plain `
>>   --no-cache
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile: 145B done
#1 DONE 0.0s

#2 [internal] load metadata for mcr.microsoft.com/windows/nanoserver:ltsc2022
#2 DONE 0.7s

#3 [internal] load .dockerignore
#3 transferring context: 2B done
#3 DONE 0.0s

#4 [internal] preparing inline document
#4 CACHED

#5 [1/2] FROM mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:31c8aa02d47af7d65c11da9c3a279c8407c32afd3fc6bec2e9a544db8e3715b3
#5 resolve mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:31c8aa02d47af7d65c11da9c3a279c8407c32afd3fc6bec2e9a544db8e3715b3 0.0s done
#5 CACHED

#6 [2/2] COPY <<EOF C:\foo\bar\hello.txt
#6 DONE 0.1s

#7 exporting to client directory
#7 copying files 32.70kB 0.0s done
#7 ERROR: open C:\Users\username\AppData\Local\Temp\buildkit-mount2710944437\WcSandboxState: Access is denied.
------
 > exporting to client directory:
------
error: failed to solve: open C:\Users\username\AppData\Local\Temp\buildkit-mount2710944437\WcSandboxState: Access is denied.

The reason for the above error has to do with windows having special permissions that are not awarded to the temp folder even if you're running as administrator. This issue is being addressed by the following PR that is currently open.

By running the version of buildkit that has the PR changes mentioned above you should see the following successfull
output of the buildctl command:

 buildctl  build `
>>   --frontend dockerfile.v0 `
>>   --local context=. `
>>   --local dockerfile=. `
>>   --output type=local,dest=./out `
>>   --progress plain `
>>   --no-cache
#1 [internal] load build definition from Dockerfile
#1 transferring dockerfile:
#1 transferring dockerfile: 145B 0.0s done
#1 DONE 0.3s

#2 [internal] load metadata for mcr.microsoft.com/windows/nanoserver:ltsc2022
#2 DONE 0.4s

#3 [internal] load .dockerignore
#3 transferring context:
#3 transferring context: 2B done
#3 DONE 0.2s

#4 [internal] preparing inline document
#4 CACHED

#5 [1/2] FROM mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:31c8aa02d47af7d65c11da9c3a279c8407c32afd3fc6bec2e9a544db8e3715b3
#5 resolve mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:31c8aa02d47af7d65c11da9c3a279c8407c32afd3fc6bec2e9a544db8e3715b3 0.0s done
#5 CACHED

#6 [2/2] COPY <<EOF C:\foo\bar\hello.txt
#6 DONE 0.5s

#7 exporting to client directory
#7 copying files 1.86MB 0.1s
#7 copying files 44.89MB 5.2s
#7 copying files 147.60MB 10.3s
#7 copying files 221.78MB 15.3s
#7 copying files 238.74MB 16.3s done
#7 DONE 16.6s

Your destination folder should have the contents of the image build as follows:
image

@profnandaa
Copy link
Collaborator

Thanks @danielGithinji ! Just to add too that, if running on WS2022, it should be successful even without the fix.
@fruzitent -- Please confirm that this okay from your end. Will proceed to close this in favour of #4985

@fruzitent
Copy link
Author

fruzitent commented Jun 27, 2024

Exporting via buildctl v0.14.1 (and not via remote builder node in Docker Desktop v4.31.1) does indeed work in this example as well as in my own project.

Would it be possible to not include system files when using scratch as a base for artifacts target to match Linux experience?

@profnandaa
Copy link
Collaborator

@fruzitent -- let me relook into that while handling #5011

@profnandaa
Copy link
Collaborator

will close this one, we can carry on from #5011

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants