Skip to content

Commit e1578f8

Browse files
committed
feat: add mini bash script version
1 parent ade9d70 commit e1578f8

File tree

4 files changed

+17
-5
lines changed

4 files changed

+17
-5
lines changed

internal/command/cli.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ func (cli *DebugCli) CreateContainer(attachContainer string, options execOptions
332332
}
333333
hostConfig := &container.HostConfig{
334334
NetworkMode: container.NetworkMode(targetName),
335-
UsernsMode: container.UsernsMode(targetName),
335+
UsernsMode: container.UsernsMode(":" + attachContainer),
336336
PidMode: container.PidMode(targetName),
337337
Mounts: mounts,
338338
SecurityOpt: options.securityOpts,

internal/config/config.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ type Config struct {
6868
ReadTimeout time.Duration `toml:"read_timeout"`
6969
}
7070

71-
// Save save to default file
71+
// Save to default file
7272
func (c *Config) Save() error {
7373
file, err := os.OpenFile(File, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0644)
7474
if err != nil {

pkg/tty/hijack.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (h *HijackedIOStreamer) beginOutputStream(restoreInput func()) <-chan error
145145

146146
var errInvalidWrite = errors.New("invalid write result")
147147

148-
func Copy(ctx context.Context, dst net.Conn, src io.Reader, readTimeout time.Duration) (written int64, err error) {
148+
func Copy(ctx context.Context, dst net.Conn, src io.Reader, writeTimeout time.Duration) (written int64, err error) {
149149
size := 32 * 1024
150150
buf := make([]byte, size)
151151
for {
@@ -158,8 +158,8 @@ func Copy(ctx context.Context, dst net.Conn, src io.Reader, readTimeout time.Dur
158158
nr, er := src.Read(buf)
159159
if nr > 0 {
160160
// docker container is stop check
161-
if readTimeout > 0 {
162-
err = dst.SetReadDeadline(time.Now().Add(readTimeout))
161+
if writeTimeout > 0 {
162+
err = dst.SetReadDeadline(time.Now().Add(writeTimeout))
163163
if err != nil {
164164
break
165165
}

shell/docker-debug.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
inspectInfo=$(docker inspect "$1")
6+
containerId=$(echo "$inspectInfo" | grep "Id" | cut -d'"' -f 4)
7+
mergedDir=$(echo "$inspectInfo" | grep "MergedDir" | cut -d'"' -f 4)
8+
targetName="container:$containerId"
9+
name=$(docker run --network $targetName --pid $targetName --stop-signal SIGKILL -v $mergedDir:/mnt/container --rm -it -d nicolaka/netshoot:latest /usr/bin/env sh)
10+
args="${@:2}"
11+
docker exec -it "$name" $args
12+
docker stop "$name" > /dev/null &

0 commit comments

Comments
 (0)