以下是命令:
try:
op = subprocess.run(['docker', 'login', '-u', 'username', '-p', 'password', 'dockerhub.com'], check=True, stdout=sys.stdout, stderr=subprocess.PIPE)
print("Docker stdout :", op.stdout)
print("Docker Error :", op.stderr.decode("utf-8"))
except:
traceback.print_exc()
当正确的密码被提供且两个打印语句按预期工作时,它的工作效果很好。
Login Succeeded
Docker stdout : None
Docker Error :
如果密码错误,我想要捕获在shell(bash)上运行时看到的输出,如下所示:
Error response from daemon: Get https://dockerhub.com/v2/: unknown: Bad credentials
但是我收到了回溯信息,而上述错误消息并未显示。
Traceback (most recent call last):
File "/home/scripts/test.py", line 54, in my_func
op = subprocess.run(['docker', 'login', '-u', 'username', '-p', 'incorrectpassword', 'dockerhub.com'], check=True, stdout=sys.stdout, stderr=subprocess.PIPE)
File "/usr/local/lib/python3.5/subprocess.py", line 708, in run
output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['docker', 'login', '-u', 'username', '-p', 'incorrectpassword', 'dockerhub.com']' returned non-zero exit status 1
Traceback (most recent call last):