Files
backup-tool/openspec/changes/dockerize-and-pyproject-setup/tasks.md
T
alex cc694e71b4 feat: dockerize app and convert to pyproject setup
- 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
2026-05-11 22:50:11 +02:00

1.5 KiB

1. Python Packaging (pyproject.toml)

  • 1.1 Create backend/pyproject.toml with project metadata, dependencies, and build system
  • 1.2 Migrate all dependencies from requirements.txt to pyproject.toml
  • 1.3 Add optional dependency groups: [dev] for pytest, [prod] for gunicorn
  • 1.4 Add console script entry point for backup-tool CLI
  • 1.5 Test pip install -e . works correctly
  • 1.6 Remove backend/requirements.txt or mark as deprecated

2. Docker Configuration

  • 2.1 Create .dockerignore to optimize build context
  • 2.2 Create backend/Dockerfile with multi-stage build (builder + runtime)
  • 2.3 Create docker-compose.yml for 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 up starts 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.md with 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