ОТ центов: 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 ")
}()
}
этот код работает хорошо, но вот проблема
Docker build out |Отправка контекста сборки в демон Docker 30,36 МБ
сборка Docker |Шаг 1/4: ОТ сентос: 6,7
сборка докера |6.7: Извлечение из библиотеки / сентос
сборка докера |cbddbc0189a0: Вытягивание слоя fs
4 строки При извлечении слоя fs невозможно изменить индикатор выполнения загрузки
и внезапно отображается следующая строка
Docker build out |Отправка контекста сборки в демон Docker 30,36 МБ
сборка Docker |Шаг 1/4: ОТ сентос: 6,7
сборка докера |6.7: Извлечение из библиотеки / сентос
сборка докера |cbddbc0189a0: вытащить слой fs
Docker build out |cbddbc0189a0: проверка контрольной суммы
сборка докера |cbddbc0189a0: загрузка завершена
сборка докера |cbddbc0189a0: извлечение завершено
сборка докера |Дайджест: sha256: 4c952fc7d30ed134109c769387313ab864711d1bd8b4660017f9d27243622df1
сборка докера |Статус: загруженный более новый образ для 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 МБ
как мне показать этот стандартный вывод?