mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 12:21:17 +00:00
2.0 KiB
2.0 KiB
21.5 在 IDE 中使用 Docker
使用 IDE 进行开发,往往要求本地安装好工具链。一些 IDE 支持 Docker 容器中的工具链,这样充分利用了 Docker 的优点,而无需在本地安装。
本节关注一个核心目标:把“开发依赖”放进容器,把“源码编辑体验”留在本地 IDE。
21.5.1 适用场景
- 团队希望统一开发环境(Go/Node/Python 版本、系统依赖、编译链)。
- 本地系统不方便安装依赖(例如 Windows、公司管控环境)。
- 项目依赖较重(例如需要
gcc、数据库客户端、特定系统库)。
不太适合的场景:强依赖本机 GPU/USB 设备、或需要非常低延迟文件 IO 的工程(此时可能需要额外调优挂载/同步策略)。
21.5.2 最小可用模式:docker compose + 开发容器
下面用一个“长期运行的开发容器”作为例子(以 Go 为例,你可以替换为 Node/Python)。
-
在项目中创建
compose.yaml(或复用你已有的 compose 文件):services: dev: image: golang:1.22 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)。
21.5.3 目录挂载与权限建议
- Linux 下如果遇到容器内写文件权限问题,优先确保容器内用户与宿主机 UID/GID 对齐。 VS Code Dev Containers 支持自动处理;手写 Dockerfile/compose 时也可以显式设置用户。
- 如果遇到文件变更监听不生效(常见于 macOS/Windows 的虚拟化文件系统), 优先使用语言/工具支持的轮询模式或提高 watcher 限制。