在 docker-py 中构建失败时如何获取日志?
How to get logs when build fails in docker-py?
如果我使用高级 docker-py sdk 构建图像,我会在失败时收到 BuildError。例如
try:
client.images.build(...)
except:
print("Hey something wrong with image build!")
我知道我可以使用低级客户端 API 直接连接和流式传输日志,请参阅 How can I detect when docker-py client.build() fails。
有没有一种方法可以从图像构建脚本中获取一些有用的调试输出,而无需进入较低级别api?
从 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
如果我使用高级 docker-py sdk 构建图像,我会在失败时收到 BuildError。例如
try:
client.images.build(...)
except:
print("Hey something wrong with image build!")
我知道我可以使用低级客户端 API 直接连接和流式传输日志,请参阅 How can I detect when docker-py client.build() fails。
有没有一种方法可以从图像构建脚本中获取一些有用的调试输出,而无需进入较低级别api?
从 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