docker-py构建失败时如何获取日志?

won*_*ton 3 python docker dockerpy

如果我使用高级 docker-py sdk 构建映像,则会在失败时收到 BuildError。,例如

try:
    client.images.build(...)
except:
    print("Hey something wrong with image build!")
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用低级客户端 API 直接挂接并流式传输日志,请参阅如何检测 docker-py client.build() 失败时

有没有办法从镜像构建脚本中获取一些有用的调试输出,而无需深入到较低级别的 api?

won*_*ton 5

从 Docker 3.x 开始,BuildError 包含一个新build_log变量,它是输出生成器:

try:
    return client.images.build(...)
except BuildError as e:
    print("Hey something went wrong with image build!")
    for line in e.build_log:
        if 'stream' in line:
            logger.error(line['stream'].strip())
    raise
Run Code Online (Sandbox Code Playgroud)