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