python-3.x - 从 docker 执行 bash 脚本
问题描述
我有一个 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 时没有得到任何输出
解决方案
在您的图像中,您很可能没有curl
and egrep
。
所以我建议你添加到你的 Dockerfile 中:
...
# Install prerequisites
RUN apt-get update && apt-get install -y curl egrep
...
我希望它会有所帮助。
推荐阅读
- asp.net-core - asp core 2.1 angular 6 iis 8无法找到css js文件
- css - 如何在 Aurelia 的点击事件中添加类?
- javascript - 如何从 index.html 中的动态脚本中删除内容
- django - 石墨烯 Django:更改字段名称
- spring - org.axonframework.commandhandling.distributed.CommandDispatchException:命令不包含路由键
- python - scikit-learn TfidfVectorizer 忽略某些单词
- javascript - 将参数传递给命名导出对象文字内的函数
- python - Python Beautifulsoup:在特定字符串之后查找元素
- java - 不显示验证按钮
- php - 驱动程序发生异常:SQLSTATE[HY000] [2054] 服务器请求客户端未知的身份验证方法