Skip to content

开发环境集成

将 Docker 集成到开发工作流中,可以实现环境一致性、快速启动和热重载。

热重载开发

使用卷挂载实现代码热重载,修改代码后自动生效。

Node.js 示例

yaml
# docker-compose.yml
version: '3.8'

services:
  app:
    build: .
    volumes:
      - .:/app
      - /app/node_modules
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=development
dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
CMD ["npm", "run", "dev"]

Python 示例

yaml
services:
  app:
    build: .
    volumes:
      - .:/app
    ports:
      - "5000:5000"
    environment:
      - FLASK_ENV=development
    command: flask run --host=0.0.0.0 --reload

调试容器

进入运行中的容器

sh
docker exec -it <container-id> /bin/bash

使用 VS Code 调试

安装 "Dev Containers" 扩展,可以直接在容器内开发和调试。

环境变量管理

使用 .env 文件管理环境变量:

properties
# .env
DATABASE_URL=postgres://user:pass@db:5432/mydb
REDIS_URL=redis://redis:6379

docker-compose.yml 中引用:

yaml
services:
  app:
    env_file:
      - .env
    environment:
      - NODE_ENV=${NODE_ENV:-development}

开发工具集成

数据库管理

yaml
services:
  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: password
    ports:
      - "5432:5432"
    volumes:
      - db_data:/var/lib/postgresql/data

  adminer:
    image: adminer
    ports:
      - "8080:8080"

Redis 缓存

yaml
services:
  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"
    volumes:
      - redis_data:/data

最佳实践

  1. 使用开发专用 Compose 文件 - docker-compose.dev.yml
  2. 挂载源代码目录 - 实现热重载
  3. 使用开发工具镜像 - 包含调试工具
  4. 配置合理的端口映射 - 避免冲突

提示

开发环境可以使用 docker-compose.dev.yml,生产环境使用 docker-compose.yml,通过 -f 参数指定。


由 BSFC Tech 提供技术支持