我正在使用Docker SDK for python(https://docker-py.readthedocs.io/en/stable/)在本地运行Docker映像。我想在docker映像中设置断点并通过PDB进行调试。但是,交互模式不起作用,如果detach为False,则docker镜像似乎被卡住,或者docker镜像进入了断点并且不接受键盘输入。
我使用一个简单的python脚本来构建docker镜像以进行测试:
print("Start ...")
import pdb; pdb.set_trace()
print("End ...")
然后,我创建另一个python脚本以在本地运行docker映像“ 8b32c9f22884”:
import docker
client = docker.from_env()
container = client.containers.run('8b32c9f22884', detach=False, tty=True, stream=True, stdin_open=True)
# If detach is False, it's kinda stuck
# If detach is True, it's not taking inputs
for log_message in container.logs(
stdout=True, stderr=True, stream=True, follow=True
):
print(str(log_message, encoding="utf-8"), end="")
return_result = container.wait()
exist_status = return_result["StatusCode"]
其他人也遇到同样的问题吗?如果适用于Python的Docker SDK无法正常工作,我想我需要使用Python子进程直接调用“ docker run --interactive”。