我正在尝试在 Docker 中设置 Pycharm 和 Python(Fastapi) 的调试环境(使用 docker-compose)。 但我陷入了无法同时启动调试服务器和 docker 镜像的问题。
我对应用程序入口点的设置:
# import debugpy
# debugpy.listen(('0.0.0.0', 5678))
# debugpy.wait_for_client()
# print("Debugger is attached!")
import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=5678, stdoutToServer=True, stderrToServer=True)
在 Pycharm 中,我为“Python 调试服务器”设置了端口 5678。 所以, 如果我先在 Pycharm 中启动调试,那么在 docker-compose up 期间会出现错误: “来自守护程序的错误响应:端口不可用:公开端口 TCP 0.0.0.0:5678 -> 0.0.0.0:0:侦听 tcp 0.0.0.0:5678:绑定:地址已在使用中”
如果我先启动 docker-compose,那么我在启动调试时会在 Pycharm 中收到错误: “地址已被使用”
看起来他们都想监听我本地计算机上的同一个端口,谁先监听,就获得所有访问权限。
我尝试用谷歌搜索,但一无所获。
同时,与VSC合作确实存在任何问题。它连接到 docker 容器并按预期进行调试。
请指教。
您可以更改 docker 映像使用的端口。您可以使用 docker-compose 来完成此操作。您可以参考这篇文章来了解如何执行此操作更改 docker-compose.yml 中的端口。或者用“run”来启动图像时