docker-compose.yml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. services:
  2. nginx:
  3. image: nginx:latest
  4. ports:
  5. - "8081:80"
  6. volumes:
  7. - ./nginx.conf:/etc/nginx/nginx.conf:ro
  8. networks:
  9. - socialMediaManagerNetwork
  10. depends_on:
  11. - messageBroker
  12. - gateway
  13. - ui
  14. messageBroker:
  15. container_name: messageBroker
  16. image: rabbitmq:management
  17. restart: unless-stopped
  18. ports:
  19. - 5672:5672
  20. - 15672:15672
  21. environment:
  22. RABBITMQ_DEFAULT_USER: username
  23. RABBITMQ_DEFAULT_PASS: password
  24. networks:
  25. - socialMediaManagerNetwork
  26. mongodb:
  27. container_name: mongodb
  28. image: mongo:7
  29. restart: unless-stopped
  30. ports:
  31. - 27018:27017
  32. environment:
  33. MONGO_INITDB_DATABASE: socialmedia
  34. volumes:
  35. - mongodb-data:/data/db
  36. networks:
  37. - socialMediaManagerNetwork
  38. redis:
  39. container_name: redis
  40. image: redis:7-alpine
  41. restart: unless-stopped
  42. ports:
  43. - 6379:6379
  44. volumes:
  45. - redis-data:/data
  46. networks:
  47. - socialMediaManagerNetwork
  48. ai-grammer-correction:
  49. build: ./services/ai_grammar_correction
  50. volumes:
  51. - ./services/ai_grammar_correction:/services/grammar_correction
  52. networks:
  53. - socialMediaManagerNetwork
  54. depends_on:
  55. - messageBroker
  56. command: tail -f /dev/null
  57. gateway:
  58. build: ./services/gateway
  59. volumes:
  60. - ./services/utils:/services/gateway/utils
  61. - ./services/gateway:/services/gateway
  62. - gateway_modules:/services/gateway/node_modules
  63. networks:
  64. - socialMediaManagerNetwork
  65. depends_on:
  66. - messageBroker
  67. socket:
  68. build: ./services/socket
  69. volumes:
  70. - ./services/utils:/services/socket/utils
  71. - ./services/socket:/services/socket
  72. - socket_modules:/services/socket/node_modules
  73. networks:
  74. - socialMediaManagerNetwork
  75. depends_on:
  76. - messageBroker
  77. formatter:
  78. build: ./services/formatter
  79. volumes:
  80. - ./services/utils:/services/formatter/utils
  81. - ./services/formatter:/services/formatter
  82. - formatter_modules:/services/formatter/node_modules
  83. restart: unless-stopped
  84. networks:
  85. - socialMediaManagerNetwork
  86. depends_on:
  87. - messageBroker
  88. twitter:
  89. build:
  90. context: ./services
  91. dockerfile: twitter/dockerfile
  92. volumes:
  93. - twitter_modules:/services/twitter/node_modules
  94. restart: unless-stopped
  95. env_file: .env
  96. networks:
  97. - socialMediaManagerNetwork
  98. depends_on:
  99. - messageBroker
  100. - mongodb
  101. linkedin:
  102. build: ./services/linkedin
  103. volumes:
  104. - ./services/utils:/services/linkedin/utils
  105. - ./services/linkedin:/services/linkedin
  106. - linkedin_modules:/services/linkedin/node_modules
  107. restart: unless-stopped
  108. env_file: .env
  109. networks:
  110. - socialMediaManagerNetwork
  111. depends_on:
  112. - messageBroker
  113. - mongodb
  114. mastodon:
  115. build:
  116. context: ./services
  117. dockerfile: mastodon/Dockerfile
  118. volumes:
  119. - mastodon_modules:/services/mastodon/node_modules
  120. restart: unless-stopped
  121. env_file: .env
  122. networks:
  123. - socialMediaManagerNetwork
  124. depends_on:
  125. - messageBroker
  126. - mongodb
  127. bluesky:
  128. build:
  129. context: ./services
  130. dockerfile: bluesky/Dockerfile
  131. volumes:
  132. - bluesky_modules:/services/bluesky/node_modules
  133. restart: unless-stopped
  134. env_file: .env
  135. networks:
  136. - socialMediaManagerNetwork
  137. depends_on:
  138. - messageBroker
  139. - mongodb
  140. feed-aggregator:
  141. build:
  142. context: ./services
  143. dockerfile: feed-aggregator/Dockerfile
  144. volumes:
  145. - feed_aggregator_modules:/services/feed-aggregator/node_modules
  146. restart: unless-stopped
  147. env_file: .env
  148. networks:
  149. - socialMediaManagerNetwork
  150. depends_on:
  151. - messageBroker
  152. - mongodb
  153. - twitter
  154. - linkedin
  155. - mastodon
  156. - bluesky
  157. scheduler:
  158. build:
  159. context: ./services
  160. dockerfile: scheduler/Dockerfile
  161. volumes:
  162. - scheduler_modules:/services/scheduler/node_modules
  163. restart: unless-stopped
  164. env_file: .env
  165. networks:
  166. - socialMediaManagerNetwork
  167. depends_on:
  168. - mongodb
  169. - redis
  170. ui:
  171. build: ./ui
  172. volumes:
  173. - ./ui:/app/ui
  174. - ui_modules:/app/ui/node_modules
  175. networks:
  176. - socialMediaManagerNetwork
  177. depends_on:
  178. - gateway
  179. networks:
  180. socialMediaManagerNetwork:
  181. driver: bridge
  182. volumes:
  183. mongodb-data:
  184. redis-data:
  185. gateway_modules:
  186. socket_modules:
  187. formatter_modules:
  188. twitter_modules:
  189. linkedin_modules:
  190. mastodon_modules:
  191. bluesky_modules:
  192. feed_aggregator_modules:
  193. scheduler_modules:
  194. ui_modules: