2017-02-23 19 views
1
Я использую 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 
} 

wait_results: ничего не печататьдокер Exec неправильно с удаленным хостом Docker в Дженкинс

Ожидается, что результат будет напечатан «aaa» в журнале консоли Jenkins.

удаленный вариант докер является:

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 
+0

У меня есть та же самая проблема. Вы нашли решение еще? –

ответ

0

Попробуйте вместо

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 
+0

спасибо, с вашим кодом он работает хорошо, эта проблема только при использовании «docker exec -t» – herryliq

+0

@herryliq целью было знать, видите ли вы контейнер в рабочем состоянии – VonC

+0

@herryliq Я отредактировал ответ, используя подходящий синтаксис для 'docker exec' – VonC

Смежные вопросы