我使用DockerPythonAPI从Dockerfile构建图像。在
import os
import sys
import os.path
import docker
client = docker.from_env()
try:
here = os.path.dirname(__file__)
no_cache = False
dockerfile = os.path.join(here, 'app', 'nextdir')
image = client.images.build(path=dockerfile, tag='app:v.2.4', nocache=no_cache, stream=True)
操作成功完成,但是我无法流式传输日志。API说:
Return a blocking generator you can iterate over to retrieve build output as it happens
当stream=True时。在
如何在python中获取这些日志?在
您可以使用low-levelAPI客户端。
build()
函数将返回一个生成器,您可以迭代该生成器以获取构建日志的块。在生成器将生成一个包含JSON对象的字符串,您可以对其调用
json.loads()
,也可以使用build()
函数中的decode=True
参数来完成此操作。在一旦您从生成的字典中获取
'stream'
键,您可能只需要print()
它,但是如果您需要将它发送给记录器,最好逐行执行,因为收到的块将包含多行。在此类代码的一个选项如下:
可以使用docker-py中给出的低级API来流化docker构建日志,如下所示:
docs状态。。。在
你试过了吗?在
相关问题 更多 >
编程相关推荐