docker-compose.yml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. version: '3.9'
  2. services:
  3. box-redis:
  4. image: redis:7
  5. restart: unless-stopped
  6. ports:
  7. - '6379:6379'
  8. healthcheck:
  9. test: ["CMD", "redis-cli", "-h", "127.0.0.1", "ping"]
  10. interval: 10s
  11. timeout: 5s
  12. retries: 5
  13. volumes:
  14. - redis_data:/data
  15. networks:
  16. - box-network
  17. box-rabbitmq:
  18. image: rabbitmq:3.12-management
  19. restart: unless-stopped
  20. ports:
  21. - '5672:5672'
  22. - '15672:15672'
  23. environment:
  24. RABBITMQ_DEFAULT_USER: boxrabbit
  25. RABBITMQ_DEFAULT_PASS: BoxRabbit2025
  26. RABBITMQ_DEFAULT_VHOST: /
  27. healthcheck:
  28. test: ["CMD", "rabbitmq-diagnostics", "status"]
  29. interval: 10s
  30. timeout: 5s
  31. retries: 5
  32. volumes:
  33. - rabbitmq_data:/var/lib/rabbitmq
  34. networks:
  35. - box-network
  36. box-mongodb:
  37. image: mongo:7
  38. restart: unless-stopped
  39. command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]
  40. ports:
  41. - '27017:27017'
  42. environment:
  43. MONGO_INITDB_ROOT_USERNAME: boxadmin
  44. MONGO_INITDB_ROOT_PASSWORD: boxpass
  45. MONGO_INITDB_DATABASE: box_admin
  46. healthcheck:
  47. test: ["CMD", "mongo", "--quiet", "--eval", "db.adminCommand('ping')", "-u", "boxadmin", "-p", "boxpass", "--authenticationDatabase", "admin"]
  48. interval: 10s
  49. timeout: 5s
  50. retries: 5
  51. volumes:
  52. - mongo_data:/data/db
  53. - ./docker/mongo/init-repl.js:/docker-entrypoint-initdb.d/init-repl.js:ro
  54. networks:
  55. - box-network
  56. box-mysql:
  57. image: mysql:8
  58. restart: unless-stopped
  59. profiles:
  60. - migration
  61. ports:
  62. - '3306:3306'
  63. environment:
  64. MYSQL_ROOT_PASSWORD: rootpass
  65. MYSQL_DATABASE: box_admin
  66. healthcheck:
  67. test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1"]
  68. interval: 10s
  69. timeout: 5s
  70. retries: 5
  71. volumes:
  72. - mysql_data:/var/lib/mysql
  73. networks:
  74. - box-network
  75. box-mgnt-api:
  76. build:
  77. context: .
  78. dockerfile: apps/box-mgnt-api/Dockerfile
  79. ports:
  80. - '3300:3300'
  81. env_file:
  82. - .env.docker
  83. environment:
  84. NODE_ENV: development
  85. APP_HOST: 0.0.0.0
  86. APP_PORT: 3300
  87. APP_CORS_ORIGIN: '*'
  88. REDIS_DB: 0
  89. REDIS_TLS: 'false'
  90. depends_on:
  91. box-redis:
  92. condition: service_healthy
  93. box-rabbitmq:
  94. condition: service_healthy
  95. box-mongodb:
  96. condition: service_healthy
  97. networks:
  98. - box-network
  99. box-app-api:
  100. build:
  101. context: .
  102. dockerfile: apps/box-app-api/Dockerfile
  103. ports:
  104. - '3301:3301'
  105. env_file:
  106. - .env.docker
  107. environment:
  108. NODE_ENV: development
  109. APP_HOST: 0.0.0.0
  110. APP_PORT: 3301
  111. APP_CORS_ORIGIN: '*'
  112. REDIS_DB: 1
  113. REDIS_TLS: 'false'
  114. depends_on:
  115. box-redis:
  116. condition: service_healthy
  117. box-rabbitmq:
  118. condition: service_healthy
  119. box-mongodb:
  120. condition: service_healthy
  121. networks:
  122. - box-network
  123. box-stats-api:
  124. build:
  125. context: .
  126. dockerfile: apps/box-stats-api/Dockerfile
  127. ports:
  128. - '3302:3302'
  129. env_file:
  130. - .env.docker
  131. environment:
  132. NODE_ENV: development
  133. APP_HOST: 0.0.0.0
  134. APP_PORT: 3302
  135. APP_CORS_ORIGIN: '*'
  136. REDIS_DB: 2
  137. REDIS_TLS: 'false'
  138. depends_on:
  139. box-redis:
  140. condition: service_healthy
  141. box-rabbitmq:
  142. condition: service_healthy
  143. box-mongodb:
  144. condition: service_healthy
  145. networks:
  146. - box-network
  147. volumes:
  148. redis_data:
  149. rabbitmq_data:
  150. mongo_data:
  151. mysql_data:
  152. networks:
  153. box-network:
  154. driver: bridge