问题描述:
在python 中执行docker run 命令并执行命令,出现没有此命令的问题,但在终端手动执行没有报错
cmd = docker run -i golang:1.2 /usr/bin/go version
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
\ stdin=subprocess.PIPE)
stdout, stderr = p.communicate()
if stderr:
log.log_info(stderr)
else:
log.log_info(stdout)
结果输入为:
/usr/bin/go No such file or directory.
解决思路:
1.在环境中安装golang(仅测试,不是正确办法)
得到结果,单得到的go version
是环境中的。并非golang:1.2
镜像的go version
说明执行的cmd 有问题。
2、使用 commands
执行命令
cmd = docker run -i golang:1.2 /usr/bin/go version
res = commands.getoutput(cmd)
log.log_info("res:%s" % res)
结果正确