每次尝试新的编程语言或框架时,您是否都会直接在主机操作系统上安装运行时(Node.js、Python、Ruby 等)和数据库(PostgreSQL、MySQL)?如果使用 Docker 容器,担心版本冲突、卸载时产生垃圾文件的“操作系统环境污染”将成为过去。我们以实践的形式组织了构建实用的本地开发环境的步骤。
为什么不能直接安装到主机操作系统中?
诸如项目 A 需要 Python 3.10、项目 B 需要 Python 3.12 之类的版本冲突很常见。 Docker 允许您将应用程序执行环境和中间件隔离为独立的一次性容器。即使您获得了一台新电脑,您也可以通过克隆存储库并点击单个命令来立即重新创建完美的开发环境。
###实践:Web应用的最低配置+DB compose.yaml 以下是链接 Node.js 环境和 PostgreSQL 数据库的标准 compose.yaml 示例。
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- DATABASE_URL=postgres://devuser:devpass@db:5432/devdb
depends_on:
- db
db:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: devuser
POSTGRES_PASSWORD: devpass
POSTGRES_DB: devdb
volumes:
- db-data:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
db-data:
顺利开发的两大秘诀
- 热重载和卷挂载:将当前目录(
.:/app)绑定挂载到容器中,以便立即反映主机端源代码的更改。但是,关键是使用匿名卷保护容器内的“node_modules”和虚拟环境,以便它们不会被主机端的空文件夹覆盖。 - 使用 VS Code Dev Containers:通过结合编辑器扩展“Dev Containers”,您可以在容器中启动 VS Code 本身,并无缝使用容器端补全引擎和 linter,与主机具有相同的操作感觉。
获得一个干净、可复制的开发平台并专注于编写代码。

