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

在Docker容器内用VS Code调试Django时容器自动关闭如何解决

问题原因及排查方向
  • 端口冲突问题
    你当前launch.json中配置的attach端口是8000,这是Django本身的HTTP服务端口,不是debugpy的调试监听端口,两个服务占用同一个端口会直接导致进程冲突退出。
    正确配置应为:debugpy单独监听一个未被占用的端口(通常用5678),launch.json中attach的端口修改为该调试端口,Django服务仍使用8000提供HTTP服务。
  • attach地址配置错误
    launch.json中的host字段是VS Code要连接的调试目标地址,本地运行Docker的场景下应填localhost而非0.0.0.0,0.0.0.0仅用于容器内debugpy的监听地址配置,错误的目标地址会导致连接异常触发进程退出。
  • debugpy配置校验
    排查容器内的启动配置是否符合调试要求:
    1. 容器Python环境是否已安装debugpy依赖
    2. Django启动命令是否添加了debugpy启动参数,示例参考:
      python -m debugpy --listen 0.0.0.0:5678 --wait-for-client manage.py runserver 0.0.0.0:8000
    3. docker-compose.yml中是否已暴露debugpy的监听端口(如5678:5678)
  • 路径映射校验
    确认本地${workspaceFolder}/app路径和容器内/usr/src/app路径完全对应,路径映射不匹配时,断点触发会导致debugpy找不到对应源文件,引发进程崩溃。可分别在本地和容器内打印对应路径的文件列表确认一致性。
  • Django自动重载冲突
    Django默认开启的代码自动重载机制会生成子进程替换原进程,会打断debugpy的连接,可在启动命令的runserver后添加--noreload参数关闭自动重载,验证是否解决退出问题。
  • 容器日志排查
    执行docker logs <web容器名称/ID>查看容器退出时的具体报错信息,可直接定位是端口占用、依赖缺失还是配置错误类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:00:03