gpt4 book ai didi

python docker 如何打印脚本的返回码以了解测试脚本是否通过或失败

转载 作者:行者123 更新时间:2023-12-01 08:19:46 26 4
gpt4 key购买 nike

基本上我有两个问题:

  1. 当我尝试使用 python docker api 运行时,它没有打印日志,但它使用 docker run 打印?
  2. 如何获取我在容器内运行的脚本的返回码?

这是我尝试过的:

import docker
dockerClient = docker.from_env()
print dockerClient.containers.run(image='centos7.5', command='./pmml2luastatic')

最佳答案

1) 根据documentation函数 run 不打印,但返回 stdout 和 stderr

The container logs, either STDOUT, STDERR, or both, depending on the value of the stdout and stderr arguments.
STDOUT and STDERR may be read only if either json-file or journald logging driver used. Thus, if you are using none of these drivers, a None object is returned instead. See the Engine API documentation for full details.

对于显示日志,我建议考虑在子进程中运行容器,而不是通过 API 运行。

import subprocess

subprocess.run("docker run --rm -i centos7.5 ./pmml2luastatic", shell=True)

2)这种方式还允许您通过 CompletedProcess 对象捕获返回代码

import subprocess

result = subprocess.run("docker run --rm -i centos7.5 ./pmml2luastatic", shell=True)

if result.returncode != 0:
print("Error")

我会考虑使用 API 与远程计算机进行通信。如果您无论如何都将使用 API 来运行容器,那么请使用 stream 参数。

stream (bool) – If true and detach is false, return a log generator instead of a string. Ignored if detach is true. Default: False.

关于python docker 如何打印脚本的返回码以了解测试脚本是否通过或失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54722489/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com