feat: add persistent mysql and redis services

This commit is contained in:
hajimi
2026-08-01 15:18:44 +08:00
parent 8f7e831270
commit e75b949bab
2 changed files with 43 additions and 1 deletions
+39
View File
@@ -58,6 +58,45 @@ services:
networks:
- sport-era-dev
mysql:
image: mysql:8.2
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${SPORT_ERA_MYSQL_ROOT_PASSWORD:-root}
MYSQL_DATABASE: ${SPORT_ERA_MYSQL_DATABASE:-sbnews}
MYSQL_USER: ${SPORT_ERA_MYSQL_USER:-sbnews}
MYSQL_PASSWORD: ${SPORT_ERA_MYSQL_PASSWORD:-sbnews}
TZ: Asia/Shanghai
ports:
- "${SPORT_ERA_MYSQL_PORT:-3307}:3306"
volumes:
- ./data/mysql:/var/lib/mysql
healthcheck:
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -uroot -p$$MYSQL_ROOT_PASSWORD --silent"]
interval: 10s
timeout: 5s
retries: 10
start_period: 30s
networks:
- sport-era-dev
redis:
image: registry.cn-guangzhou.aliyuncs.com/likeadmin/redis:7.4.0
restart: unless-stopped
command: redis-server --appendonly yes
ports:
- "${SPORT_ERA_REDIS_PORT:-6379}:6379"
volumes:
- ./data/redis:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 10
start_period: 10s
networks:
- sport-era-dev
volumes:
admin-node-modules:
uniapp-node-modules:
+4 -1
View File
@@ -19,7 +19,9 @@
完成内容:
- 新增 `docker/docker-compose.dev.yml`,用于并行启动 server、admin 与 uniapp H5 开发服务。
- 编排不声明 MySQL Redis 容器;server 直接挂载并使用现有 `server/.env`,保留其中的远程数据库与 Redis 配置,不写入或覆盖连接信息
- 编排包含 MySQL 8.2 与 Redis 7.4 服务,数据分别绑定持久化到根目录下的 `docker/data/mysql``docker/data/redis`,删除容器不会删除宿主机数据
- 本地默认端口为 MySQL `3307`、Redis `6379`,均可通过 Compose 环境变量覆盖。
- server 继续挂载并使用现有 `server/.env`,不写入或覆盖其中的数据库与 Redis 连接信息;本地 MySQL/Redis 可供后续按需切换或独立调试。
- server 通过 Nginx 暴露在 `http://localhost:8000`,管理端与 H5 分别使用项目现有端口 `5176``5177`H5 本地开发 API 地址同步为 `http://localhost:8000`
- 已完成容器启动与 HTTP 访问验证,三个入口均可正常响应。
@@ -30,6 +32,7 @@
验证说明:
- 已执行 `docker compose -f docker/docker-compose.dev.yml up -d`,并核验容器状态、H5 编译日志及三个 HTTP 入口。
- 已核验 MySQL 版本为 `8.2.0`、MySQL/Redis 健康检查通过,并验证宿主机端口可连接。
### 89. 移动端首页设计稿还原