Skip to content

开发调试常用命令速查

以下命令均假设在 项目根目录 执行 (E:\Desktop\模多多教育版\moduoduo-edu-mvp),并已安装 Docker Desktop / Docker Compose。


1. Docker 镜像 & 容器

场景命令说明
停止并删除所有容器 + 匿名卷docker compose down -v清掉数据库卷、Redis 数据等,从零开始。
仅停止 backenddocker compose stop backendPostgres/Redis 保留运行。
删除 backend 容器docker compose rm -f backend删除已停止的 backend 容器。
删除 backend 镜像docker rmi $(docker images -q moduoduo-edu-mvp-backend)重新 build 前手动清理旧镜像。
删除 dangling 镜像docker image prune -f清理无 tag 镜像,释放磁盘。
删除全部卷docker volume prune -f删除全部孤立卷,清理数据。

2. 重新构建 & 启动服务

操作命令
再次打开 Docker Desktop 后快速启动所有服务docker compose up -d
完整重建 backend 镜像(无缓存)docker compose build --no-cache backend
重建并启动 backenddocker compose up -d --build backend
一次性重建所有服务docker compose up -d --build

-d 代表后台运行(detached)。如需查看日志,可用 docker compose logs -f backend


3. Alembic 数据库迁移

场景命令
运行最新迁移docker compose exec backend alembic upgrade head
生成新迁移 (例)docker compose exec backend alembic revision --autogenerate -m "add course table"

4. 运行测试

场景命令
在容器内运行 pytestdocker compose exec -e PYTHONPATH=/app backend pytest -q
仅运行某个文件docker compose exec -e PYTHONPATH=/app backend pytest tests/test_auth.py
带 coveragedocker compose exec -e PYTHONPATH=/app backend pytest --cov=app

如果在 docker-compose.yml 中为 backend 设置 environment: PYTHONPATH=/app,则可省去 -e PYTHONPATH=/app


5. 容器内部调试

操作命令
进入 backend Bashdocker compose exec -it backend bash
进入 postgres psql (socket)docker compose exec postgres psql -U moduoduo
测试 TCP 连接docker compose exec postgres bash -c 'PGPASSWORD=moduoduo psql -h postgres -U moduoduo -d moduoduo -c "SELECT 1"'

6. 查看日志 & 指标

场景命令
实时查看 backend 日志docker compose logs -f backend
过滤 ERROR`docker compose logs backend
拉取 Prometheus 指标打开 http://localhost:8000/metrics

7. 常见问题 Quick Fix

  1. 密码认证失败
    bash
    # socket 方式重设密码
    docker compose exec -it postgres psql -U moduoduo -c "ALTER USER moduoduo WITH PASSWORD 'moduoduo';"
  2. 基础镜像拉取超时
    bash
    docker pull python:3.11-slim          # 重试或换镜像 tag
    # 或配置镜像加速器 (Docker Desktop Settings > Registries)

如果有新的常用命令,直接编辑此文件 DEV_COMMANDS.md 追加即可。