You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过VSCode实现Docker容器内Python代码的远程debug调试

VSCode远程调试Docker容器内Python代码配置与问题解决

基础配置

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"]

VSCode launch.json远程调试配置

初始配置如下:

{"name":"Python: Remote Attach","type":"python","request":"attach","connect":{"host":"5678","port":5678},"pathMappings":[{"localRoot":"${workspaceFolder}","remoteRoot":"."}]}

调试需求

  • 支持单独调试单个当前打开的Python文件
  • 支持通过调试器在Docker容器内运行项目启动文件init.py

初始问题现象

使用如下命令构建并启动容器后,VSCode发起调试请求会挂起最终超时:

docker run -p 5678:5678 CONTAINERNAME python3 /home/init.py

先后尝试过先启动容器再发起调试、先发起调试再启动容器两种操作顺序,问题均存在。由于原教程配置针对python unittest模块设计,尝试去掉命令末尾的-m参数后,debugpy无法正常识别指令。

问题修复过程

更新1

修复了IP地址格式错误(此前误将点号写为逗号),解决了Python抛出的地址格式错误,但调试器连接异常问题仍然存在。

更新2

最终定位到连接问题根源:初始launch.json中错误将端口号5678填写到了host字段,将host值修改为0.0.0.0后,先运行容器再通过VSCode发起调试连接,即可正常完成调试。

内容的提问来源于stack exchange,提问作者stillQuestioning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:24:04