Skip to content

Commit

Permalink
Merge pull request #1065 from ktock/buildg-0.1.0
Browse files Browse the repository at this point in the history
Bump up buildg to v0.1.0
  • Loading branch information
AkihiroSuda committed May 17, 2022
2 parents e77e05b + 193e8d6 commit 41644da
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 36 deletions.
2 changes: 1 addition & 1 deletion Dockerfile
Expand Up @@ -41,7 +41,7 @@ ARG IPFS_VERSION=v0.12.2
# Extra deps: Init
ARG TINI_VERSION=v0.19.0
# Extra deps: Debug
ARG BUILDG_VERSION=v0.0.3
ARG BUILDG_VERSION=v0.1.0

# Test deps
ARG GO_VERSION=1.18
Expand Down
2 changes: 0 additions & 2 deletions Dockerfile.d/SHA256SUMS.d/buildg-v0.0.3

This file was deleted.

2 changes: 2 additions & 0 deletions Dockerfile.d/SHA256SUMS.d/buildg-v0.1.0
@@ -0,0 +1,2 @@
3f9a4bd7872c0029f3ba392487b58104d05c28c516d48c6797704ba999a9e113 buildg-v0.1.0-linux-amd64.tar.gz
54f7bf2e371ca7a6fa9d88f72d6b82babea71df8d2dcf4e8e962cf2542f529d5 buildg-v0.1.0-linux-arm64.tar.gz
18 changes: 18 additions & 0 deletions cmd/nerdctl/builder.go
Expand Up @@ -89,6 +89,8 @@ func newBuilderDebugCommand() *cobra.Command {
buildDebugCommand.Flags().String("target", "", "Set the target build stage to build")
buildDebugCommand.Flags().StringArray("build-arg", nil, "Set build-time variables")
buildDebugCommand.Flags().String("image", "", "Image to use for debugging stage")
buildDebugCommand.Flags().StringArray("ssh", nil, "Allow forwarding SSH agent to the build. Format: default|<id>[=<socket>|<key>[,<key>]]")
buildDebugCommand.Flags().StringArray("secret", nil, "Expose secret value to the build. Format: id=secretname,src=filepath")
return buildDebugCommand
}

Expand Down Expand Up @@ -135,6 +137,22 @@ func builderDebugAction(cmd *cobra.Command, args []string) error {
buildgArgs = append(buildgArgs, "--image="+imageValue)
}

if sshValue, err := cmd.Flags().GetStringArray("ssh"); err != nil {
return err
} else if len(sshValue) > 0 {
for _, v := range sshValue {
buildgArgs = append(buildgArgs, "--ssh="+v)
}
}

if secretValue, err := cmd.Flags().GetStringArray("secret"); err != nil {
return err
} else if len(secretValue) > 0 {
for _, v := range secretValue {
buildgArgs = append(buildgArgs, "--secret="+v)
}
}

buildgCmd := exec.Command(buildgBinary, append(buildgArgs, args[0])...)
buildgCmd.Env = os.Environ()
buildgCmd.Stdin = cmd.InOrStdin()
Expand Down
3 changes: 2 additions & 1 deletion cmd/nerdctl/builder_linux_test.go
Expand Up @@ -17,6 +17,7 @@
package main

import (
"bytes"
"fmt"
"os"
"testing"
Expand All @@ -37,5 +38,5 @@ CMD ["echo", "nerdctl-builder-debug-test-string"]
assert.NilError(t, err)
defer os.RemoveAll(buildCtx)

base.Cmd("builder", "debug", buildCtx).AssertOK()
base.Cmd("builder", "debug", buildCtx).CmdOption(testutil.WithStdin(bytes.NewReader([]byte("c\n")))).AssertOK()
}
53 changes: 21 additions & 32 deletions docs/builder-debug.md
Expand Up @@ -26,8 +26,7 @@ Example debugging:

```console
$ nerdctl builder debug --image=ubuntu:22.04 /tmp/ctx/
WARN[2022-05-10T12:49:43Z] using host network as the default
#1 [internal] load .dockerignore
WARN[2022-05-17T10:15:48Z] using host network as the default#1 [internal] load .dockerignore
#1 transferring context: 2B done
#1 DONE 0.1s

Expand All @@ -36,52 +35,42 @@ WARN[2022-05-10T12:49:43Z] using host network as the default
#2 DONE 0.1s

#3 [internal] load metadata for docker.io/library/busybox:latest
#3 DONE 3.0s

#4 [1/4] FROM docker.io/library/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8
#4 resolve docker.io/library/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8 0.0s done
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 0.2s
INFO[2022-05-17T10:15:51Z] debug session started. type "help" for command reference.
Filename: "Dockerfile"
1| FROM busybox AS build1
=> 2| RUN echo a > /a
=> 1| FROM busybox AS build1
2| RUN echo a > /a
3| RUN echo b > /b
4| RUN echo c > /c
>>> break 3
>>> breakpoints
(buildg) break 3
(buildg) breakpoints
[0]: line: Dockerfile:3
[on-fail]: breaks on fail
>>> continue
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 772.81kB / 772.81kB 0.3s done
#4 extracting sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0.0s done
#4 DONE 0.4s
(buildg) continue
#3 DONE 3.1s

#4 [1/4] FROM docker.io/library/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8
#4 resolve docker.io/library/busybox@sha256:d2b53584f580310186df7a2055ce3ff83cc0df6caacf1e3489bff8cf5d0af5d8 0.0s done
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 0.2s
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 5.3s
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0B / 772.81kB 10.4s
#4 sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 772.81kB / 772.81kB 11.4s done
#4 extracting sha256:50e8d59317eb665383b2ef4d9434aeaa394dcd6f54b96bb7810fdde583e9c2d1 0.1s done
#4 DONE 20.2s

#5 [2/4] RUN echo a > /a
#5 DONE 15.1s
Breakpoint: line: Dockerfile:3: reached
#5 DONE 0.1s
Breakpoint[0]: reached line: Dockerfile:3
Filename: "Dockerfile"
1| FROM busybox AS build1
2| RUN echo a > /a
*=> 3| RUN echo b > /b
4| RUN echo c > /c
>>> exec --image sh
# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
(buildg) exec --image sh
# ls /debugroot/
a b bin dev etc home proc root tmp usr var
# cat /debugroot/a /debugroot/b
a
b
#
>>> quit
(buildg) quit
```

0 comments on commit 41644da

Please sign in to comment.