Как мне получить журнал сборки докера в stdout прогресса загрузки - PullRequest
0 голосов
/ 18 июня 2019

ОТ центов: 6,7

RUN ls -al

WORKDIR /

CMD "echo hi"

этопростой Dockerfile

Я создам изображение с помощью этого dockerfile, и я не использую командную оболочку cmd

Я использую пакет "exec" golang, а вот код

func execCommand(buildCmd string) {

cmdArgs := strings.Fields(buildCmd)

cmd := exec.Command(cmdArgs[0], cmdArgs[1:len(cmdArgs)]...)
cmdReader, _ := cmd.StdoutPipe()
cmdReaderErr, _ := cmd.StderrPipe()

scanner := bufio.NewScanner(cmdReader)
scannerErr := bufio.NewScanner(cmdReaderErr)

cmd.Start()
go func() {

    for scanner.Scan() {
        fmt.Println("docker build out | ", scanner.Text())
    }

    if scannerErr.Scan() {
        fmt.Print("docker build out err | ", scannerErr.Text())
    }
    fmt.Println("end end end end ")

    }()
}

этот код работает хорошо, но вот проблема

  1. Docker build out |Отправка контекста сборки в демон Docker 30,36 МБ

  2. сборка Docker |Шаг 1/4: ОТ сентос: 6,7

  3. сборка докера |6.7: Извлечение из библиотеки / сентос

  4. сборка докера |cbddbc0189a0: Вытягивание слоя fs

4 строки При извлечении слоя fs невозможно изменить индикатор выполнения загрузки

и внезапно отображается следующая строка

  1. Docker build out |Отправка контекста сборки в демон Docker 30,36 МБ

  2. сборка Docker |Шаг 1/4: ОТ сентос: 6,7

  3. сборка докера |6.7: Извлечение из библиотеки / сентос

  4. сборка докера |cbddbc0189a0: вытащить слой fs

  5. Docker build out |cbddbc0189a0: проверка контрольной суммы

  6. сборка докера |cbddbc0189a0: загрузка завершена

  7. сборка докера |cbddbc0189a0: извлечение завершено

  8. сборка докера |Дайджест: sha256: 4c952fc7d30ed134109c769387313ab864711d1bd8b4660017f9d27243622df1

  9. сборка докера |Статус: загруженный более новый образ для centos: 6,7

это журнал сборки команд оболочки:

сборка Docker -t тест: v1.

Отправка контекста сборки в демон Docker 30.36MB

Шаг 1/4: ОТ сентос: 6.7

6.7: Извлечение из библиотеки / centos

cbddbc0189a0: Загрузка [===============>] 20,92 МБ / 67,81 МБ

стандартный вывод golang не отображается Загрузка [===============>] 20,92 МБ / 67,81 МБ

как мне показать этот стандартный вывод?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...