github.com/containerd/nerdctl@v1.7.7/docs/builder-debug.md (about) 1 # Interactive debugging of Dockerfile (Experimental) 2 3 nerdctl supports interactive debugging of Dockerfile as `nerdctl builder debug`. 4 5 ``` 6 $ nerdctl builder debug /path/to/context 7 ``` 8 9 This feature leverages [buildg](https://github.com/ktock/buildg), interactive debugger of Dockerfile. 10 For command reference, please refer to the [Command reference doc in buildg repo](https://github.com/ktock/buildg#command-reference). 11 12 :warning: This command currently doesn't use the host's `buildkitd` daemon but uses the patched version of BuildKit provided by buildg. This should be fixed to use the host's `buildkitd` in the future. 13 14 ## Example 15 16 Example Dockerfile: 17 18 ```Dockerfile 19 FROM busybox AS build1 20 RUN echo a > /a 21 RUN echo b > /b 22 RUN echo c > /c 23 ``` 24 25 Example debugging: 26 27 ```console 28 $ nerdctl builder debug --image=ubuntu:22.04 /tmp/ctx/ 29 WARN[2022-05-17T10:15:48Z] using host network as the default#1 [internal] load .dockerignore 30 #1 transferring context: 2B done 31 #1 DONE 0.1s 32 33 #2 [internal] load build definition from Dockerfile 34 #2 transferring dockerfile: 108B done 35 #2 DONE 0.1s 36 37 #3 [internal] load metadata for docker.io/library/busybox:latest 38 INFO[2022-05-17T10:15:51Z] debug session started. type "help" for command reference. 39 Filename: "Dockerfile" 40 => 1| FROM busybox AS build1 41 2| RUN echo a > /a 42 3| RUN echo b > /b 43 4| RUN echo c > /c 44 (buildg) break 3 45 (buildg) breakpoints 46 [0]: line: Dockerfile:3 47 [on-fail]: breaks on fail 48 (buildg) continue 49 #3 DONE 3.1s 50 51 #4 [1/4] FROM docker.io/library/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8 52 #4 resolve docker.io/library/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8 0.0s done 53 #4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 0.2s 54 #4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 5.3s 55 #4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 10.4s 56 #4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 772.81kB / 772.81kB 11.4s done 57 #4 extracting sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0.1s done 58 #4 DONE 20.2s 59 60 #5 [2/4] RUN echo a > /a 61 #5 DONE 0.1s 62 Breakpoint[0]: reached line: Dockerfile:3 63 Filename: "Dockerfile" 64 1| FROM busybox AS build1 65 2| RUN echo a > /a 66 *=> 3| RUN echo b > /b 67 4| RUN echo c > /c 68 (buildg) exec --image sh 69 # ls /debugroot/ 70 a b bin dev etc home proc root tmp usr var 71 # cat /debugroot/a /debugroot/b 72 a 73 b 74 # 75 (buildg) quit 76 ```