cc694e71b4
- Add pyproject.toml with proper metadata and dependency groups - Create multi-stage Dockerfile for backend - Add docker-compose.yml with dev/prod profiles - Create frontend Dockerfile with nginx - Add .dockerignore for optimized builds - Update README with Docker instructions and troubleshooting - Remove requirements.txt in favor of pyproject.toml - Ensure data persistence with Docker volumes
1.5 KiB
1.5 KiB
1. Python Packaging (pyproject.toml)
- 1.1 Create
backend/pyproject.tomlwith project metadata, dependencies, and build system - 1.2 Migrate all dependencies from
requirements.txttopyproject.toml - 1.3 Add optional dependency groups:
[dev]for pytest,[prod]for gunicorn - 1.4 Add console script entry point for
backup-toolCLI - 1.5 Test
pip install -e .works correctly - 1.6 Remove
backend/requirements.txtor mark as deprecated
2. Docker Configuration
- 2.1 Create
.dockerignoreto optimize build context - 2.2 Create
backend/Dockerfilewith multi-stage build (builder + runtime) - 2.3 Create
docker-compose.ymlfor full stack orchestration - 2.4 Add docker-compose profiles for dev (hot reload) and prod modes
- 2.5 Ensure SQLite database and backups persist across container restarts
3. Integration and Testing
- 3.1 Test Docker image builds successfully from project root
- 3.2 Test
docker compose upstarts both backend and frontend - 3.3 Verify backend hot reload works in development mode
- 3.4 Verify production mode serves static frontend files
- 3.5 Run existing test suite inside Docker container
- 3.6 Test data persistence: create backup, restart containers, verify data exists
4. Documentation
- 4.1 Update
README.mdwith Docker installation instructions - 4.2 Document environment variables for Docker configuration
- 4.3 Add troubleshooting section for common Docker issues
- 4.4 Document both manual and Docker deployment paths