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

Docker容器中FastAPI应用VSCode调试器无法运行求助

排查思路与解决方案

1. 确认容器内已安装debugpy

你将应用打包为wheel安装,debugpy默认不会包含在你的应用依赖中,需确保容器内已安装该工具:

  • 修改Dockerfile,在安装wheel包前添加RUN pip install debugpy
  • 或者在项目的开发依赖文件(如requirements-dev.txt)中加入debugpy,构建时同步安装

2. 检查容器启动命令的执行报错

手动启动容器并验证命令是否正常执行:

  1. 启动容器进入交互模式:
    docker run -it --rm -p 5678:5678 -p 8000:8000 fastapiapp:debug bash
    
  2. 在容器内手动运行调试命令:
    python -m debugpy --listen 0.0.0.0:5678 --wait-for-client -m fast_api_app.main
    
    观察是否有报错(如找不到debugpy模块、找不到fast_api_app.main模块等)

3. 验证FastAPI应用本身可正常启动

暂时移除--wait-for-client参数,修改task.json中的command:

"command": "python -m debugpy --listen 0.0.0.0:5678 -m fast_api_app.main"

重新启动容器,访问localhost:8000确认FastAPI是否正常运行,排除应用自身启动问题

4. 检查模块启动方式是否正确

如果你的FastAPI应用是通过uvicorn启动(而非main.py内直接调用uvicorn.run),调试命令需调整为直接调用uvicorn:

"command": "python -m debugpy --listen 0.0.0.0:5678 --wait-for-client -m uvicorn fast_api_app.main:app --host 0.0.0.0 --port 8000"

确保fast_api_app.main中存在名为app的FastAPI实例

5. 修正路径映射配置

launch.json中的remoteRoot需指向容器内应用代码的实际路径(而非.):

  • 在容器内执行pip show fast_api_app查看Location字段(如/usr/local/lib/python3.10/site-packages)
  • 修改pathMappings:
"pathMappings": [
    {
        "localRoot": "${workspaceFolder}/src/fast_api_app",
        "remoteRoot": "/usr/local/lib/python3.10/site-packages/fast_api_app"
    }
]

6. 检查容器端口映射是否生效

执行docker ps查看容器端口映射状态,确认5678和8000端口已正确绑定到主机

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:15:36