如何获得docker build登录下载进度标准

时间:2019-06-18 07:10:32

标签: docker go stdout

  

FROM centos:6.7

     

运行ls -al

     

WORKDIR /

     

CMD“回声嗨”

这是简单的Dockerfile

我将使用此dockerfile创建映像,并且我不使用shell cmd

我正在使用golang“ exec”软件包,这是代码

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.36MB

  2.   
  3. docker build out |步骤1/4:从centos:6.7

  4.   
  5. docker build out | 6.7:从库/中心中提取

  6.   
  7. docker build out | cbddbc0189a0:拉出fs层

  8.   

4行拉fs图层无法更改下载进度条

突然显示下一行

  
      
  1. docker build out |将构建上下文发送到Docker守护程序30.36MB

  2.   
  3. docker build out |步骤1/4:从centos:6.7

  4.   
  5. docker build out | 6.7:从库/中心中提取

  6.   
  7. docker build out | cbddbc0189a0:拉出fs层

  8.   
  9. docker build out | cbddbc0189a0:验证校验和

  10.   
  11. docker build out | cbddbc0189a0:下载完成

  12.   
  13. docker build out | cbddbc0189a0:提取完成

  14.   
  15. docker build out |摘要:sha256:4c952fc7d30ed134109c769387313ab864711d1bd8b4660017f9d27243622df1

  16.   
  17. docker build out |状态:为centos下载的新映像:6.7

  18.   

这是shell命令docker build log

  

docker build -t test:v1

     

将构建上下文发送到Docker守护程序30.36MB

     

第1/4步:从centos:6.7

     

6.7:从库/中心中拉出

     

cbddbc0189a0:正在下载[===============>] 20.92MB / 67.81MB

golang标准输出未显示正在下载[===============>] 20.92MB / 67.81MB

我如何显示此标准输出?

0 个答案:

没有答案