21_case_devops/21.5_ide.md
使用 IDE 进行开发,往往要求本地安装好工具链。一些 IDE 支持 Docker 容器中的工具链,这样充分利用了 Docker 的优点,而无需在本地安装。
本节关注一个核心目标:把“开发依赖”放进容器,把“源码编辑体验”留在本地 IDE。
gcc、数据库客户端、特定系统库)。不太适合的场景:强依赖本机 GPU/USB 设备、或需要非常低延迟文件 IO 的工程(此时可能需要额外调优挂载/同步策略)。
下面用一个“长期运行的开发容器”作为例子(以 Go 为例,你可以替换为 Node/Python)。
在项目中创建 compose.yaml(或复用你已有的 compose 文件):
services:
dev:
image: golang:1.26
working_dir: /work
volumes:
- ./:/work
command: sleep infinity
启动开发容器:
docker compose up -d
进入容器安装依赖/执行命令:
docker compose exec dev bash
go version
go test ./...
这个模式的优点是“简单直接、IDE 无关”,缺点是 IDE 需要额外配置 (例如配置远程解释器/语言服务,或使用 VS Code Dev Containers)。
Linux 下如果遇到容器内写文件权限问题,优先确保容器内用户与宿主机 UID/GID 对齐。 VS Code Dev Containers 支持自动处理;手写 Dockerfile/compose 时也可以显式设置用户。
如果遇到文件变更监听不生效(常见于 macOS/Windows 的虚拟化文件系统), 优先使用语言/工具支持的轮询模式或提高 watcher 限制。