我有一些docker命令,我想用Groovy脚本运行它们(在Ubuntu环境下工作)
以下命令可从终端正常运行:
docker exec -it my_docker bash -c '/opt/someFolder/someScript.sh'
但是,当我从Groovy脚本运行此命令时,没有任何反应:
['/bin/sh', '-c', "docker exec -it my_docker bash -c '/opt/someFolder/someScript.sh'"].execute().text.trim()
可能是什么原因?
答案 0 :(得分:1)
它可能在标准输出上生成了太多数据,因此缓冲区已满,并且进程阻塞。
而不是:
.
执行:
['/bin/sh', '-c', "docker exec -it my_docker bash -c '/opt/someFolder/someScript.sh'"].execute().text.trim()
答案 1 :(得分:0)
使用
docker exec -t my_docker bash -c '/opt/someFolder/someScript.sh'
不要使用-ti
,只需使用-t
即可。使用docker exec
简单地运行脚本时,您无法进行交互,尤其是任何CI。