Docker Go SDK ContainerExecAttach возвращает отметку времени - PullRequest
1 голос
/ 24 февраля 2020

Я использую docker Go SDK для выполнения cmd, но я обнаружил, что метка времени вернулась неожиданно.

    ctx := context.Background()
    cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
    if err != nil {
        panic(err)
    }

    config := types.ExecConfig{
        AttachStdin:  true,
        AttachStderr: true,
        AttachStdout: true,
        Cmd:          cmd,
    }

    IDResp, err := cli.ContainerExecCreate(ctx, ID, config)
    if err != nil {
        log.Panic(err)
    }

    resp, err := cli.ContainerExecAttach(ctx, IDResp.ID, types.ExecStartCheck{})
    if err != nil {
        log.Panic(err)
    }

    text, _ := resp.Reader.ReadString('\n') 
    log.Print(text)

Вывод pwd:

 go run .
/home/jovyan1:38:27  <- It seems this is a timestamp

Как удалить эту метку времени?

1 Ответ

0 голосов
/ 24 февраля 2020

Скорее всего, регистратор вмешивается.

Замените последнюю строку log.Print(text) на fmt.Printf("%s\n", text).


Обновление 1:

На самом деле, ваш /home/jovyan1:38:27 соответствует форме сообщения об ошибке компиляции go. Вы должны попробовать запустить go build . вместо go run ., чтобы убедиться, что ваша программа компилируется первой.

...