4.5 KiB
4.5 KiB
本地容器环境说明
1. 目标
本文档说明如何在本机通过 Docker Compose 快速启动电子名片项目所需的完整容器环境。
当前提供的服务包括:
- MySQL 8.0
- Redis 7
- MinIO
- Spring Boot 后端
- Vue 管理后台(Nginx 托管)
对应文件:
- docker-compose.yml
- MySQL Dockerfile
- MySQL 配置
- Redis 配置
- Backend Dockerfile
- Frontend Dockerfile
- 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会在启动后自动创建easycardbucket- 当前脚本默认给该 bucket 开启下载访问,便于本地联调图片访问
- 数据持久化目录:
docker/data/minio - 当前不对宿主机暴露端口,仅允许 Docker 内网访问
3.4 Backend
- 容器名:
easycard-backend - 端口:
8112
说明:
- 使用 docker/backend/Dockerfile 进行多阶段构建
- 容器启动时使用
dockerprofile - 日志目录挂载到
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=mysqlDB_PORT=3306DB_NAME=easycardDB_USERNAME=rootDB_PASSWORD=rootREDIS_HOST=redisREDIS_PORT=6379REDIS_DATABASE=0- MinIO 服务名:
minio
5. 数据挂载目录
当前容器数据与日志均挂载到宿主机目录:
docker/data/mysqldocker/data/redisdocker/data/miniodocker/data/backend/logsdocker/data/nginx/logs
这样做的好处:
- 便于本地排查数据
- 重建容器后数据仍保留
- 便于备份和手工清理
6. 注意事项
easycard_init.sql当前仅适用于手工建库和 Docker 首次建库- 若重新执行初始化脚本,请先删除 MySQL 数据卷,否则 MySQL 不会再次执行
/docker-entrypoint-initdb.d - 若需要重建表结构和演示数据,请删除 MySQL 数据后重新启动 backend,由 Flyway 重新执行版本脚本
- 若本机已有 8112 或 8081 端口占用,需要同步调整后端和前端端口映射
- 当前仅
frontend-admin(8081)和backend(8112)对宿主机暴露端口