docker-compose.yml 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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. - TZ=Asia/Shanghai
  12. - PORT=3000
  13. - DB_HOST=mysql
  14. - DB_PORT=3306
  15. - DB_USERNAME=media_manager
  16. - DB_PASSWORD=${DB_PASSWORD:-changeme}
  17. - DB_DATABASE=media_manager
  18. - REDIS_HOST=redis
  19. - REDIS_PORT=6379
  20. - JWT_SECRET=${JWT_SECRET:-your-super-secret-key-change-in-production}
  21. - ENCRYPTION_KEY=${ENCRYPTION_KEY:-your-encryption-key-32-chars-long!}
  22. volumes:
  23. - ./uploads:/app/uploads
  24. - ./logs:/app/logs
  25. depends_on:
  26. - mysql
  27. - redis
  28. networks:
  29. - media-manager-network
  30. mysql:
  31. image: mysql:8.0
  32. container_name: media-manager-mysql
  33. restart: unless-stopped
  34. command: --default-time-zone=+08:00
  35. environment:
  36. - TZ=Asia/Shanghai
  37. - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-rootpassword}
  38. - MYSQL_DATABASE=media_manager
  39. - MYSQL_USER=media_manager
  40. - MYSQL_PASSWORD=${DB_PASSWORD:-changeme}
  41. volumes:
  42. - mysql-data:/var/lib/mysql
  43. - ../database/schema.sql:/docker-entrypoint-initdb.d/schema.sql
  44. ports:
  45. - "3306:3306"
  46. networks:
  47. - media-manager-network
  48. redis:
  49. image: redis:7-alpine
  50. container_name: media-manager-redis
  51. restart: unless-stopped
  52. command: redis-server --appendonly yes
  53. volumes:
  54. - redis-data:/data
  55. ports:
  56. - "6379:6379"
  57. networks:
  58. - media-manager-network
  59. volumes:
  60. mysql-data:
  61. redis-data:
  62. networks:
  63. media-manager-network:
  64. driver: bridge