mirror of
https://github.com/remvze/moodist.git
synced 2025-12-19 01:44:15 +00:00
🎉 版本升级: 2.5.0 → 3.0.0 🎵 音乐播放系统重构: - 独立的音乐播放系统,不影响当前选中声音 - 修复 React Hooks 调用错误 - 使用直接 Howl API 实现音频控制 - 添加播放/停止状态视觉反馈 - 组件显示逻辑完全分离 🐳 Docker 部署优化: - 所有 compose 文件添加 SQLite 数据库挂载 - 支持 WAL 模式和并发写入 - 数据持久化,容器重启不丢失数据 - 创建详细的 Docker 数据库挂载文档 🎨 UI/UX 改进: - 修复当前选中声音与音乐列表显示互斥问题 - 播放按钮状态动态显示 - 组件模块完全独立展示 🗄️ 数据库性能优化: - 启用 WAL 模式提高并发性能 - 优化 SQLite 配置参数 - 添加详细日志和错误处理 📦 新增文件: - docker-database-mount.md: Docker 数据库挂载说明文档
2.4 KiB
2.4 KiB
Docker 数据库挂载说明
概述
本项目已配置 SQLite 数据库文件挂载,确保数据在容器重启后不会丢失。
数据库文件位置
SQLite 数据库文件位于项目的 ./data 目录中:
./data/users.db- 主数据库文件./data/users.db-wal- Write-Ahead Log 文件./data/users.db-shm- 共享内存文件
Docker Compose 配置
1. 基础配置 (docker-compose.yml)
services:
moodist:
volumes:
# 挂载 SQLite 数据库文件和 WAL 文件
- ./data:/app/data:rw
environment:
- NODE_ENV=production
2. 优化配置 (docker-compose.optimized.yml)
services:
moodist:
volumes:
# 挂载 SQLite 数据库文件目录(需要读写权限)
- ./data:/app/data:rw
# 挂载临时目录用于 SQLite WAL 文件
- moodist-temp:/tmp:rw
volumes:
moodist-temp:
driver: local
3. 开发配置 (docker-compose.dev.yml)
services:
moodist-dev:
volumes:
# 挂载 SQLite 数据库文件目录
- ./data:/app/data:rw
使用方法
启动服务
# 生产环境
docker-compose up -d
# 优化环境
docker-compose -f docker-compose.optimized.yml up -d
# 开发环境
docker-compose -f docker-compose.dev.yml up -d
数据持久化
- 数据库文件会自动创建在
./data目录中 - 容器重启或重新创建后数据不会丢失
- 支持数据库备份和迁移
备份数据库
# 备份数据库
cp ./data/users.db ./data/users.db.backup.$(date +%Y%m%d_%H%M%S)
# 查看数据库文件
ls -la ./data/
注意事项
- 权限问题: 确保
./data目录有正确的读写权限 - WAL 模式: SQLite 使用 WAL (Write-Ahead Logging) 模式,会产生额外的 WAL 和 SHM 文件
- 并发访问: Docker 挂载确保文件系统的一致性
- 备份策略: 建议定期备份数据库文件
故障排除
数据库锁定问题
如果遇到数据库锁定错误:
- 停止容器:
docker-compose down - 删除 WAL 文件:
rm ./data/users.db-wal ./data/users.db-shm - 重新启动容器:
docker-compose up -d
权限问题
如果遇到权限错误:
# 设置正确的目录权限
sudo chown -R 1000:1000 ./data
chmod 755 ./data
开发环境注意事项
开发环境中,数据库文件会被实时同步到本地文件系统,便于:
- 调试和测试
- 数据分析
- 快速重置测试数据