refactor: migrate to native Docker Compose profiles
Simplified Docker Compose configuration by using native profiles instead of override files, following best practices. Changes: - Consolidated docker-compose.yml with --profile dev/prod support - Removed docker-compose.dev.yml and docker-compose.prod.yml - Updated all documentation for new usage pattern - Created comprehensive README.md and DEPLOYMENT.md - Simplified commands: 'docker compose --profile dev up' Environment-specific configurations: - Development: relaxed security, hot reload, exposed ports - Production: strict security, optimized builds, restricted access This approach is cleaner, more maintainable, and follows Docker Compose best practices.
This commit is contained in:
@@ -23,7 +23,8 @@ cp backend/.env.example backend/.env
|
||||
|
||||
3. **Start development environment**
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
|
||||
docker compose --profile dev up -d
|
||||
# Or simply: docker compose up (dev is default)
|
||||
```
|
||||
|
||||
4. **Run database migrations**
|
||||
@@ -80,17 +81,17 @@ Edit `backend/.env.production`:
|
||||
|
||||
4. **Build production images**
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.prod.yml build
|
||||
docker compose --profile prod build
|
||||
```
|
||||
|
||||
5. **Start production services**
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
|
||||
docker compose --profile prod up -d
|
||||
```
|
||||
|
||||
6. **Run migrations**
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.prod.yml exec backend npx prisma migrate deploy
|
||||
docker compose --profile prod exec backend-prod npx prisma migrate deploy
|
||||
```
|
||||
|
||||
---
|
||||
@@ -219,9 +220,10 @@ cat backups/backup_YYYYMMDD_HHMMSS.sql | docker exec -i spotlightcam-db psql -U
|
||||
|
||||
### View logs
|
||||
|
||||
**Development:**
|
||||
```bash
|
||||
# All services
|
||||
docker compose logs -f
|
||||
docker compose --profile dev logs -f
|
||||
|
||||
# Specific service
|
||||
docker compose logs -f backend
|
||||
@@ -231,6 +233,19 @@ docker compose logs -f nginx
|
||||
docker compose logs --tail 100 backend
|
||||
```
|
||||
|
||||
**Production:**
|
||||
```bash
|
||||
# All services
|
||||
docker compose --profile prod logs -f
|
||||
|
||||
# Specific service (note -prod suffix)
|
||||
docker compose logs -f backend-prod
|
||||
docker compose logs -f nginx-prod
|
||||
|
||||
# Last 100 lines
|
||||
docker compose --profile prod logs --tail 100 backend-prod
|
||||
```
|
||||
|
||||
### Production log management
|
||||
|
||||
Logs are configured with rotation:
|
||||
@@ -238,11 +253,6 @@ Logs are configured with rotation:
|
||||
- Max files: 3
|
||||
- Located in Docker's logging directory
|
||||
|
||||
**View logs:**
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.prod.yml logs --tail 100 -f
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Security Checklist
|
||||
@@ -391,25 +401,39 @@ docker compose -f docker-compose.yml -f docker-compose.prod.yml exec backend npx
|
||||
|
||||
```bash
|
||||
# Start development
|
||||
docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d
|
||||
docker compose --profile dev up -d
|
||||
# Or simply: docker compose up -d
|
||||
|
||||
# Start production
|
||||
docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d
|
||||
docker compose --profile prod up -d
|
||||
|
||||
# Stop all
|
||||
docker compose down
|
||||
# Stop all (specific profile)
|
||||
docker compose --profile dev down
|
||||
docker compose --profile prod down
|
||||
|
||||
# View logs
|
||||
# View logs (development)
|
||||
docker compose logs -f backend
|
||||
|
||||
# Shell into container
|
||||
# View logs (production)
|
||||
docker compose logs -f backend-prod
|
||||
|
||||
# Shell into container (development)
|
||||
docker compose exec backend sh
|
||||
|
||||
# Run migrations
|
||||
# Shell into container (production)
|
||||
docker compose exec backend-prod sh
|
||||
|
||||
# Run migrations (development)
|
||||
docker compose exec backend npx prisma migrate deploy
|
||||
|
||||
# Backup database
|
||||
# Run migrations (production)
|
||||
docker compose exec backend-prod npx prisma migrate deploy
|
||||
|
||||
# Backup database (development)
|
||||
docker exec spotlightcam-db pg_dump -U spotlightcam spotlightcam > backup.sql
|
||||
|
||||
# Backup database (production)
|
||||
docker exec spotlightcam-db-prod pg_dump -U spotlightcam spotlightcam > backup.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user