.devcontainer文件夹必须存在、devcontainer.json路径和大小写必须严格匹配、VS Code需通过Open Folder打开工作区;否则Reopen in Container按钮灰掉或提示“No dev container configuration found”。

能直接用,但必须满足三个硬性前提:工作区根目录存在 .devcontainer 文件夹、里面放着大小写完全匹配的 devcontainer.json、VS Code 是通过 Open Folder 方式打开该工作区。
devcontainer.json 不生效?检查这四件事
点击 Reopen in Container 没反应或报 No dev container configuration found,90% 是结构或路径问题:
-
.devcontainer必须是**文件夹名**,不是文件;不能叫.devcontainer.json或devcontainer -
devcontainer.json必须放在.devcontainer/里,不能在项目根目录或其他子目录 - 文件名大小写必须严格为
devcontainer.json(Linux 容器环境区分大小写) - VS Code 必须本地启用
Dev Containers插件,且版本 ≥ 1.76;远程 SSH/WSL 场景下插件默认不生效
最小可用配置怎么写?别抄复杂模板
多数 Python 项目不需要自定义 Dockerfile,直接复用微软官方镜像最稳:
{
"image": "mcr.microsoft.com/devcontainers/python:3",
"features": {
"ghcr.io/devcontainers/features/git:1": {}
},
"postCreateCommand": "pip install -r requirements.txt"
}
说明:
立即学习“Python免费学习笔记(深入)”;
-
image值指向预构建镜像,:3自动匹配最新 Python 3.x,比硬写:3.12更少维护负担 -
features替代了手动RUN apt install,Git、curl、GitHub CLI 等都可按需开启 -
postCreateCommand在容器首次创建后执行,适合装项目依赖;若用uv,就写uv sync
容器进得去,但代码没同步 / 终端 pwd 错 / 端口打不开?
这不是插件故障,而是挂载和网络配置没对齐预期:
- VS Code 默认把当前工作区完整挂载到容器内
/workspaces/<folder-name>;如果改了workspaceFolder字段,终端pwd就会错位,git 提交也可能失败 - Flask/FastAPI 启动在
8000端口,宿主机却访问不到?必须显式声明"forwardPorts": [8000] - 调试断点不命中?检查
python.defaultInterpreterPath是否设为容器内路径(如/usr/bin/python3),而不是宿主机路径 - Windows + WSL2 用户注意:Docker Desktop 启用 WSL2 后端时,VS Code 也必须运行在 WSL2 中,否则文件同步延迟或权限报错
真正容易被忽略的是:容器启动后 VS Code 的扩展是分层加载的——宿主机装的插件只在宿主机界面生效,extensions 字段里列出的才真正在容器内安装并起作用。漏配 ms-python.python,连 Python 解释器都选不了。


















