Python 在构建映像时,是否有使用docker SDK查看标准输出的选项?

Python 在构建映像时,是否有使用docker SDK查看标准输出的选项?,python,docker,docker-image,Python,Docker,Docker Image,我刚开始用python而不是sh脚本构建docker图像,但我很困惑,因为我的脚本没有标准输出 有什么方法可以实现它吗?如果返回对象,参数“quiet”似乎启用/禁用 谢谢, 雅各布 最简单的例子: # Dockerfile FROM ubuntu 其中,控制台中的build命令产生: jakob@jakob:~/foo$ docker build . Sending build context to Docker daemon 20.99kB Step 1/1 : FROM ubuntu

我刚开始用python而不是sh脚本构建docker图像,但我很困惑,因为我的脚本没有标准输出

有什么方法可以实现它吗?如果返回对象,参数“quiet”似乎启用/禁用

谢谢,

雅各布

最简单的例子:

# Dockerfile
FROM ubuntu
其中,控制台中的build命令产生:

jakob@jakob:~/foo$ docker build .
Sending build context to Docker daemon  20.99kB
Step 1/1 : FROM ubuntu
---> 7e0aa2d69a15
Successfully built 7e0aa2d69a15

执行python文件不会产生任何结果。我希望两者的标准都相似。

我以前从未使用过这个,但我只是将
build()
放在
print()
中,发现它返回了一些值

(<Image: 'ubuntu:latest'>, <itertools._tee object at 0x7f836bea2b00>)
给我

<Image: 'ubuntu:latest'> <class 'docker.models.images.Image'> 

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'attrs', 'client', 'collection', 'history', 'id', 'id_attribute', 'labels', 'reload', 'save', 'short_id', 'tag', 'tags']

{'stream': 'Step 1/1 : FROM ubuntu'}
{'stream': '\n'}
{'stream': ' ---> 7e0aa2d69a15\n'}
{'aux': {'ID': 'sha256:7e0aa2d69a153215c790488ed1fcec162015e973e49962d438e18249d16fa9bd'}}
{'stream': 'Successfully built 7e0aa2d69a15\n'}
这给了我

Step 1/1 : FROM ubuntu
---> 7e0aa2d69a15
Successfully built 7e0aa2d69a15
非常感谢:)它确实回答了我的问题-当我构建多个docker图像(每个图像长达1小时以上)时,我感觉很奇怪,因为我无法获得任何反馈或检查构建过程。尽管我希望软件包能够以某种方式打印这些内容。非常感谢。
<Image: 'ubuntu:latest'> <class 'docker.models.images.Image'> 

['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'attrs', 'client', 'collection', 'history', 'id', 'id_attribute', 'labels', 'reload', 'save', 'short_id', 'tag', 'tags']

{'stream': 'Step 1/1 : FROM ubuntu'}
{'stream': '\n'}
{'stream': ' ---> 7e0aa2d69a15\n'}
{'aux': {'ID': 'sha256:7e0aa2d69a153215c790488ed1fcec162015e973e49962d438e18249d16fa9bd'}}
{'stream': 'Successfully built 7e0aa2d69a15\n'}
import docker

client = docker.from_env()
result = client.images.build(path='.')#, quiet=False)

#print(result)

#print(result[0], type(result[0]))
#print(dir(result[0]))

for item in result[1]:
    #print(item)
    for key, value in item.items():
        #print(key, ':', value)
        if key == 'stream':
            text = value.strip()
            if text:
                print(text)
Step 1/1 : FROM ubuntu
---> 7e0aa2d69a15
Successfully built 7e0aa2d69a15