【问题标题】:Execute bash script from docker从 docker 执行 bash 脚本
【发布时间】:2019-07-03 17:59:16
【问题描述】:

我有一个 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 时,我没有得到任何输出

【问题讨论】:

    标签: python-3.x bash docker


    【解决方案1】:

    您的图片中很可能没有curlegrep

    所以我建议你将这个添加到你的 Dockerfile 中:

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

    我希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2014-11-08
      • 2020-06-24
      • 1970-01-01
      相关资源
      最近更新 更多