我正在使用 docker python API 从 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 说:
返回一个阻塞生成器,您可以迭代以检索构建
发生时输出
当流=True时。
我怎样才能在Python中获取这些日志?
根据docs https://docker-py.readthedocs.io/en/stable/images.html#docker.models.images.ImageCollection.build,镜像构建现在返回一个包含镜像和构建日志的元组
第一项是 Image 对象
所构建的图像。第二项是构建日志作为 JSON 解码对象的生成器。
并相应地修改@havock解决方案:
import docker
client = docker.from_env()
image, build_logs = client.images.build(**your_build_kwargs)
for chunk in build_logs:
if 'stream' in chunk:
for line in chunk['stream'].splitlines():
log.debug(line)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)