docker exec在Jenkins的远程docker主机上出错

我使用Jenkins + Pipeline + DockerPlugin与远程主机build立并运行docker容器时,执行命令如下:

docker.withServer("tcp://192.168.1.122:2375",'') { def wait_results = sh(script: "docker exec -t development-taxpayer-server-131-1 echo aaa", returnStdout: true) print wait_results } 

wait_results:无法打印

期望的结果是在Jenkins控制台日志中打印“aaa”。

远程docker版本是:

 Client: Version: 1.12.5 API version: 1.24 Go version: go1.6.4 Git commit: 7392c3b Built: Fri Dec 16 02:23:59 2016 OS/Arch: linux/amd64 Server: Version: 1.12.5 API version: 1.24 Go version: go1.6.4 Git commit: 7392c3b Built: Fri Dec 16 02:23:59 2016 OS/Arch: linux/amd64 

改为尝试

 def wait_results = sh(script: "docker ps -a", returnStdout: true) 

这样你至less可以检查:

  • docker工作
  • 容器development-taxpayer-server-131-1正在运行

然后,考虑docker exec语法 ,请尝试-it

 def wait_results = sh(script: "docker exec -it development-taxpayer-server-131-1 echo aaa", returnStdout: true) 

注意:“ 如何在现有的Docker容器上运行一个命令? ”显示了没有任何选项的同样的回显:

 docker exec development-taxpayer-server-131-1 echo aaa