繁体   English   中英

从Docker执行bash脚本

[英]Execute bash script from docker

我有一个bash脚本,该脚本在docker容器中运行。
这个bash脚本由我的包装器python脚本调用。 参数通过python脚本传递。
Bash脚本中有一行可以执行ssh并获取结果。
当我运行此脚本时,在运行脚本的主机终端上没有ssh输出。

这是我的bash脚本部分

function query_function () {
    test_variable1=`curl -ks "$sp_hostname" | grep ",active" | egrep -v "$excluded_hostnames" | egrep "[.,]$1" | egrep ",$2| $2" | cut -d "," -f 2 | sort`
    for f in `echo $test_variable1`; do
        output=''
        echo 'SERVER:' $f
        ssh -i "key_file" -o "StrictHostKeyChecking no" -q $f "$3"
        echo $'\n'
    done
    exit 0
} 

这就是我调用docker容器运行脚本的方式。

$ docker run -it --rm --net host nnarayanan-wrapper morpheus vm appdb 'command'

1)确认的python脚本调用bash脚本
2)确认bash脚本正在接受传递的参数
3)通过主机终端中的bash脚本在docker容器内执行ssh时,我没有任何输出

最有可能在您的图像中没有curlegrep

因此,我建议您将此添加到Dockerfile中:

...
# Install prerequisites
RUN apt-get update && apt-get install -y curl egrep
...

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM