Jenkinsfile:如何捕获 docker.Image.run() 的标准输出?

Sto*_*row 5 stdout jenkins docker gitversion jenkins-declarative-pipeline

我想使用 Jenkinsdocker.Image.run()来运行GitVersion

bashshell 中,如果我运行

docker run --rm -v "$(pwd):/repo" gittools/gitversion:5.6.6 /repo
Run Code Online (Sandbox Code Playgroud)

...JSON 格式的字符串被发送到 stdout。

我希望我的 Jenkinsfile 能够使用这个标准输出。
我知道我可以从 Jenkinsfile 运行这个 docker 容器,如下所示:

pipeline {
  agent any
  stages {
    stage("1") {
      steps {
        script {
          def img = docker.image("gittools/gitversion:5.6.6")
          img.run('-v "$(pwd):/repo"', '/repo')
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如何使用捕获运行容器的标准输出docker.Image.run()

我知道我可以通过调用捕获容器的标准输出sh,例如

def my_stdout = sh(script: 'docker run --rm -v "$(pwd):/repo" gittools/gitversion:5.6.6 /repo`,
                   returnStdout:true)
Run Code Online (Sandbox Code Playgroud)

...但是我想具体学习一下,如果可能的话/如何从 Jenkins' 捕获标准输出docker.Image.run(),如所述${JENKINS_URL}/job/${job}/pipeline-syntax/globals#docker