docker-compose.yml 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. version: '3.8'
  2. services:
  3. server:
  4. build: .
  5. container_name: media-manager-server
  6. restart: unless-stopped
  7. ports:
  8. - "3000:3000"
  9. environment:
  10. - NODE_ENV=production
  11. - PORT=3000
  12. - DB_HOST=mysql
  13. - DB_PORT=3306
  14. - DB_USERNAME=media_manager
  15. - DB_PASSWORD=${DB_PASSWORD:-changeme}
  16. - DB_DATABASE=media_manager
  17. - REDIS_HOST=redis
  18. - REDIS_PORT=6379
  19. - JWT_SECRET=${JWT_SECRET:-your-super-secret-key-change-in-production}
  20. - ENCRYPTION_KEY=${ENCRYPTION_KEY:-your-encryption-key-32-chars-long!}
  21. volumes:
  22. - ./uploads:/app/uploads
  23. - ./logs:/app/logs
  24. depends_on:
  25. - mysql
  26. - redis
  27. networks:
  28. - media-manager-network
  29. mysql:
  30. image: mysql:8.0
  31. container_name: media-manager-mysql
  32. restart: unless-stopped
  33. environment:
  34. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-rootpassword}
  35. - MYSQL_DATABASE=media_manager
  36. - MYSQL_USER=media_manager
  37. - MYSQL_PASSWORD=${DB_PASSWORD:-changeme}
  38. volumes:
  39. - mysql-data:/var/lib/mysql
  40. - ../database/schema.sql:/docker-entrypoint-initdb.d/schema.sql
  41. ports:
  42. - "3306:3306"
  43. networks:
  44. - media-manager-network
  45. redis:
  46. image: redis:7-alpine
  47. container_name: media-manager-redis
  48. restart: unless-stopped
  49. command: redis-server --appendonly yes
  50. volumes:
  51. - redis-data:/data
  52. ports:
  53. - "6379:6379"
  54. networks:
  55. - media-manager-network
  56. volumes:
  57. mysql-data:
  58. redis-data:
  59. networks:
  60. media-manager-network:
  61. driver: bridge