Docker Go lang SDK ничего не возвращает из ContainerExecCreate - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь выполнить команду (скажем, "pwd"), используя Docker Go lang SDK, и я ожидаю, что он возвращает рабочий каталог в контейнере. Но он ничего не возвращает обратно. Я не уверен, что вопрос.

    rst, err := cli.ContainerExecCreate(context.Background(), "0df7c1d9d185b1da627efb983886a12fefc32120d035b34e97c3ad13da6dd9cc", types.ExecConfig{Cmd: []string{"pwd"}})
if err != nil {
    panic(err)
}

//res, err := cli.ContainerExecInspect(context.Background(), rst.ID)
//print(res.ExitCode)

response, err := cli.ContainerExecAttach(context.Background(), rst.ID, types.ExecStartCheck{})
if err != nil {
    panic(err)
}
defer response.Close()

data, _ := ioutil.ReadAll(response.Reader)
fmt.Println(string(data))


GOROOT=/usr/local/Cellar/go/1.13.5/libexec #gosetup
GOPATH=/Users/pt/go #gosetup
/usr/local/Cellar/go/1.13.5/libexec/bin/go build -o /private/var/folders/yp/hh3_03d541x0r6t7_zwqqhqr0000gn/T/___go_build_main_go /Users/pt/go/src/awesomeProject/main.go #gosetup
/private/var/folders/yp/hh3_03d541x0r6t7_zwqqhqr0000gn/T/___go_build_main_go #gosetup

### It does not print the working directory ###
Process finished with exit code 0

1 Ответ

0 голосов
/ 17 января 2020

Это решается с помощью следующей конфигурации:

optionsCreate := types.ExecConfig{
    AttachStdout: true,
    AttachStderr: true,
    Cmd:          []string{"ls", "-a"},
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...