Skip to content

开发环境部署

本文档描述如何使用 Docker Compose 在本地运行项目的开发环境。

内容涵盖环境配置、初始化步骤、访问入口以及常用命令。

前置条件

  • Docker Engine 和 Docker Compose v2
  • 推荐使用 Linux 主机;Windows/macOS 用户建议使用 Docker Desktop 以获得更好的体验
  • 确保 30008000 端口未被占用

服务列表

开发用的 Docker Compose 文件(docker-compose.yml)包含以下服务:

服务说明
dbPostgreSQL 18 数据库
redisRedis 7 — Celery 消息代理、结果后端及 Django 缓存
backendDjango runserver(热重载)
celery-workerCelery worker(并发数=2,热重载)
celery-beatCelery beat 调度器(DatabaseScheduler,调度数据存储在 PostgreSQL 中)
frontendVite 开发服务器
vitepress文档服务器(VitePress)

快速开始

配置环境变量

在项目根目录下创建 .env 文件。开发环境至少包含以下内容:

text
POSTGRES_PASSWORD=password
DJANGO_DEBUG=true
SM2_PUBLIC_KEY=your_sm2_public_key
SM2_PRIVATE_KEY=your_sm2_private_key

其余变量在开发环境下均有默认值。如需覆盖数据库名称、微信密钥、对象存储、构建镜像源等配置,请参阅环境变量

TIP

.env 文件会由 Docker Compose 自动加载。请不要.env 提交到版本控制中(将其添加到 .gitignore)。

初始化系统

bash
# 构建并启动所有服务
docker compose up --build -d

# 执行数据库迁移
docker compose exec backend python manage.py migrate

# 创建管理员账户
docker compose exec backend python manage.py createsuperuser

访问入口

服务URL
前端http://localhost:3000
后端 APIhttp://localhost:8000/api/v1/
管理后台http://localhost:8000/django-admin/

开发环境与生产环境对比

配置项docker-compose.ymldocker-compose.prod.yml
用途开发生产
前端服务Vite 开发服务器Nginx 静态托管
后端服务runserverGunicorn
Celery worker并发数=2并发数=4
Redis无持久化启用 AOF 持久化
端口3000、800080 或 443(启用 TLS 时)

常用命令

bash
# 停止并移除容器(默认保留数据卷)
docker compose down

# 重启所有服务
docker compose restart

# 查看后端日志(实时跟踪)
docker compose logs -f backend

# 进入后端容器的 Shell
docker compose exec backend bash

# 重建并重启单个服务(以后端为例)
docker compose up --build -d backend

# 查看容器状态
docker compose ps

重置环境(移除数据卷)

使用以下命令清除持久化数据(如数据库数据卷)并从头重新创建所有内容。

WARNING

此操作将删除 Docker 数据卷中的所有本地开发数据。

bash
docker compose down -v
docker compose up --build -d

常见问题排查

  • 如果前端无法连接后端,请确认后端容器运行正常,且 API 基础 URL 为 http://localhost:8000

  • 如果 docker compose up 因端口冲突失败,请修改 docker-compose.yml 中的端口映射,或停止占用端口的进程。

  • 当数据库迁移失败时,请先查看后端日志:

    bash
    docker compose logs -f backend