Files
EasyCard/docs/本地中间件环境说明.md
陈子默 74543cb9bf docs: 补充项目设计与环境文档
- 增加产品功能、技术方案与数据库设计说明

- 增加本地中间件环境与联调说明
2026-03-20 12:45:23 +08:00

4.5 KiB
Raw Permalink Blame History

本地容器环境说明

1. 目标

本文档说明如何在本机通过 Docker Compose 快速启动电子名片项目所需的完整容器环境。

当前提供的服务包括:

  • MySQL 8.0
  • Redis 7
  • MinIO
  • Spring Boot 后端
  • Vue 管理后台Nginx 托管)

对应文件:

2. 启动方式

在项目根目录执行:

docker compose up -d --build

查看状态:

docker compose ps

停止并保留数据卷:

docker compose down

停止并删除数据卷:

docker compose down -v

3. 服务说明

3.1 MySQL

  • 容器名:easycard-mysql
  • 数据库:easycard
  • 用户:root
  • 密码:root

说明:

  • 首次启动时会自动执行 easycard_init.sql
  • 该脚本当前只负责创建 easycard 数据库
  • 表结构、平台基础数据、演示数据由后端启动后的 Flyway 脚本统一执行
  • 数据持久化目录:docker/data/mysql
  • 当前不对宿主机暴露端口,仅允许 Docker 内网访问

3.2 Redis

  • 容器名:easycard-redis
  • 默认未设置密码

说明:

  • 当前为本地开发配置
  • 后续若进入联调或准生产环境,建议补充访问密码
  • 数据持久化目录:docker/data/redis
  • 当前不对宿主机暴露端口,仅允许 Docker 内网访问

3.3 MinIO

  • 容器名:easycard-minio
  • 用户名:minioadmin
  • 密码:minioadmin

说明:

  • minio-init 会在启动后自动创建 easycard bucket
  • 当前脚本默认给该 bucket 开启下载访问,便于本地联调图片访问
  • 数据持久化目录:docker/data/minio
  • 当前不对宿主机暴露端口,仅允许 Docker 内网访问

3.4 Backend

  • 容器名:easycard-backend
  • 端口:8112

说明:

  • 使用 docker/backend/Dockerfile 进行多阶段构建
  • 容器启动时使用 docker profile
  • 日志目录挂载到 docker/data/backend/logs
  • 首次启动会等待 MySQL 健康检查通过后再启动

接口地址:

3.5 Frontend Admin

  • 容器名:easycard-frontend-admin
  • 端口:8081

说明:

  • 使用 docker/frontend-admin/Dockerfile 构建前端产物
  • 通过 Nginx 托管前端静态资源
  • Nginx 会将 /api/swagger-ui/v3/api-docs 反向代理到 backend 服务
  • Nginx 日志目录挂载到 docker/data/nginx/logs

访问地址:

4. 与后端配置的对应关系

当前后端默认配置位于:

容器内部联通使用:

  • DB_HOST=mysql
  • DB_PORT=3306
  • DB_NAME=easycard
  • DB_USERNAME=root
  • DB_PASSWORD=root
  • REDIS_HOST=redis
  • REDIS_PORT=6379
  • REDIS_DATABASE=0
  • MinIO 服务名:minio

5. 数据挂载目录

当前容器数据与日志均挂载到宿主机目录:

  • docker/data/mysql
  • docker/data/redis
  • docker/data/minio
  • docker/data/backend/logs
  • docker/data/nginx/logs

这样做的好处:

  • 便于本地排查数据
  • 重建容器后数据仍保留
  • 便于备份和手工清理

6. 注意事项

  • easycard_init.sql 当前仅适用于手工建库和 Docker 首次建库
  • 若重新执行初始化脚本,请先删除 MySQL 数据卷,否则 MySQL 不会再次执行 /docker-entrypoint-initdb.d
  • 若需要重建表结构和演示数据,请删除 MySQL 数据后重新启动 backend由 Flyway 重新执行版本脚本
  • 若本机已有 8112 或 8081 端口占用,需要同步调整后端和前端端口映射
  • 当前仅 frontend-admin(8081)backend(8112) 对宿主机暴露端口