Implement data persistence for safe app updates

- Add external volume mounting for database, uploads, and media files
- Update Dockerfile to conditionally initialize database only if it doesn't exist
- Move database to external /data volume for persistence across rebuilds
- Configure production environment with proper FLASK_CONFIG
- Add volume mappings for complete data persistence:
  * ./data:/data - Database persistence
  * ./uploads:/opt/moto_site/uploads - File uploads persistence
  * ./static/media:/opt/moto_site/static/media - Media files persistence
- Create init script that skips database creation if DB already exists
- Enable safe app updates without losing users, posts, or tracks

This ensures all user data persists across Docker container rebuilds and app updates.
This commit is contained in:
ske087
2025-08-09 16:40:49 +03:00
parent 343b7389e7
commit d1e2b95678
2 changed files with 20 additions and 7 deletions

View File

@@ -8,10 +8,12 @@ services:
ports:
- "8100:5000"
environment:
- FLASK_ENV=production
- DATABASE_URL=sqlite:///moto_adventure.db
- FLASK_CONFIG=production
- DATABASE_URL=sqlite:////data/moto_adventure.db
- SECRET_KEY=ana_are_mere_si-si-pere_cat-cuprinde_in_cos
working_dir: /opt/moto_site
volumes:
- ./uploads:/opt/moto_site/uploads
- ./data:/data # Database persistence
- ./uploads:/opt/moto_site/uploads # File uploads persistence
- ./static/media:/opt/moto_site/static/media # Media files persistence
restart: unless-stopped