我最近按照以下教程嘗試使用 VSCode 在 Docker 容器中除錯 python 代碼:
https://www.youtube.com/watch?v=qCCj7qy72Bg&t=374s
我的 Dockerfile 看起來像這樣:
FROM ubuntu as base
#Do standard image stuff here
#Python Debugger
From base as debugger
RUN pip3 install debugpy
ENTRYPOINT ["python3","-m","debugpy","--listen","0.0.0.0:5678","--wait-for-client"]
我交替嘗試完全復制教程并使用以下 ENTRYPOINT 代替:
ENTRYPOINT ["python3","-m","debugpy","--listen","0.0.0.0:5678","--wait-for-client","-m"]
我還為 launch.json 配置了一個 VSCode 遠程附加除錯實體:
{"name":"Python: Remote Attach","type":"python","request":"attach","connect":{"host":"5678","port":5678},"pathMappings":[{"localRoot":"${workspaceFolder}","remoteRoot":"."}]},
我希望除錯器要么單獨除錯當前檔案,要么運行我用來運行整個專案的檔案,名為init.py并在docker容器中使用除錯器。
目前,當我構建和運行 docker 容器時
docker run -p 5678:5678 CONTAINERNAME python3 /home/init.py
它在 Visual Studio 端掛起并超時。
在視頻中,他使用它來運行 python unittest 模塊,這就是為什么我嘗試從修改版本中的命令末尾取出-m 的原因。但是,看起來 debugpy 不知道該怎么做。我曾嘗試在遠程除錯器之前運行 docker 實體,或在 docker 實體之后運行遠程除錯器,但錯誤仍然存??在并且除錯不起作用。如何使用 VSCode 遠程除錯到 docker 實體?
編輯:
感謝 FlorianLudwig 指出我的原始代碼使用逗號作為 IP,而不是所需的句點。
我已編輯問題以反映此更改。它消除了 python 抱怨地址格式錯誤的問題,但似乎我仍然有某種與除錯器的連接問題。
編輯2:
我想我知道是什么導致了連接問題。看起來visual studio默認是使用與有問題的埠號相同的主機。我將主機更改為 0.0.0.0,并且能夠通過運行容器然后通過 Visual Studio 除錯連接到它來進行除錯。
uj5u.com熱心網友回復:
在您的 Dockerfile 中:
"0,0,0,0:5678" 應該 "0.0.0.0:5678"
使其成為有效的IP地址。0.0.0.0基本上意味著“任何”IP地址。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/322003.html
標籤:Python 码头工人 调试 视觉工作室代码 远程调试
上一篇:使用CloudCode和GoLand在aks集群中遠程除錯golang應用程式
下一篇:除錯時jest測驗不按順序執行
