当执行以下命令时,我使用Jenkins + Pipeline + DockerPlugin来构建和运行带有远程主机的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
}
预期的结果是在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)
这样,您至少可以检查以下内容:
development-taxpayer-server-131-1
正在运行然后,考虑
docker exec
syntax,尝试-it
:def wait_results = sh(script: "docker exec -it development-taxpayer-server-131-1 echo aaa", returnStdout: true)
注意:“How to run a command on an already existing docker container?”显示相同的回声,没有任何选择:
docker exec development-taxpayer-server-131-1 echo aaa
关于jenkins - Jenkins 中的远程docker主机的docker exec错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42405760/