docker-compose.yml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318
  1. version: '3'
  2. networks:
  3. private:
  4. web:
  5. external:
  6. name: web
  7. volumes:
  8. mongo_data_preprod:
  9. driver: local
  10. driver_opts:
  11. type: none
  12. o: bind
  13. device: /srv/mongo/data_preprod
  14. mongo_backups_preprod:
  15. driver: local
  16. services:
  17. express_preprod:
  18. build:
  19. context: ./express-server
  20. ports:
  21. - "4000:4000"
  22. networks:
  23. - web
  24. - private
  25. labels:
  26. - traefik.enable=true
  27. - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  28. - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  29. - traefik.http.routers.express_preprod.entrypoints=websecure
  30. - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  31. depends_on:
  32. - database_preprod
  33. environment:
  34. # Utilisez une URI sans authentification
  35. - MONGODB_URI=mongodb://database_preprod:27017/mean-fatboar-db
  36. restart: always
  37. database_preprod:
  38. image: mongo:4.4.6
  39. # Toujours ne pas exposer le port 27017 publiquement si possible
  40. # ports:
  41. # - "27017:27017"
  42. volumes:
  43. - ./backup:/backup
  44. - mongo_data_preprod:/data/db
  45. # Supprimez toutes les variables d'environnement d'authentification
  46. networks:
  47. - private
  48. restart: always
  49. mongodb-backup-preprod:
  50. image: tiredofit/mongodb-backup:latest
  51. container_name: mongodb-backup-preprod
  52. volumes:
  53. - mongo_backups_preprod:/backup
  54. environment:
  55. - MONGODB_HOST=database_preprod
  56. - MONGODB_PORT=27017
  57. # Ne PAS renseigner d'utilisateur/mot de passe
  58. - BACKUP_LOCATION=/backup
  59. - BACKUP_COMPRESSION=GZIP
  60. - BACKUP_SPLIT_DB=TRUE
  61. - BACKUP_BEGIN=TRUE
  62. - SCHEDULE=*/30 * * * *
  63. - BACKUP_RETAIN_DAYS=7
  64. - BACKUP_CLEANUP_TIME=0430
  65. - NOTIFICATION_TYPE=none
  66. - DEBUG_MODE=TRUE
  67. - CONTAINER_ENABLE_MONITORING=TRUE
  68. - CONTAINER_NAME=mongodb-backup-preprod
  69. depends_on:
  70. - database_preprod
  71. networks:
  72. - private
  73. restart: unless-stopped
  74. apache_preprod:
  75. build:
  76. context: ./
  77. dockerfile: build/docker/apache/Dockerfile
  78. ports:
  79. - "8080:80"
  80. networks:
  81. - web
  82. - private
  83. volumes:
  84. - /var/log:/var/log/apache2
  85. labels:
  86. - traefik.enable=true
  87. - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  88. - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  89. - traefik.http.routers.apache_preprod.entrypoints=websecure
  90. - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  91. restart: always
  92. # version: '3'
  93. # networks:
  94. # private:
  95. # web:
  96. # external:
  97. # name: web
  98. # volumes:
  99. # mongo_data_preprod:
  100. # driver: local
  101. # driver_opts:
  102. # type: none
  103. # o: bind
  104. # device: /srv/mongo/data_preprod
  105. # mongo_backups_preprod:
  106. # driver: local
  107. # services:
  108. # express_preprod:
  109. # build:
  110. # context: ./express-server
  111. # ports:
  112. # - "4000:4000"
  113. # networks:
  114. # - web
  115. # - private
  116. # labels:
  117. # - traefik.enable=true
  118. # - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  119. # - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  120. # - traefik.http.routers.express_preprod.entrypoints=websecure
  121. # - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  122. # depends_on:
  123. # - database_preprod
  124. # environment:
  125. # # Variables pour connecter à MongoDB avec authentification
  126. # - MONGODB_URI=mongodb://admin:azerty10@database_preprod:27017/mean-fatboar-db?authSource=admin
  127. # restart: always
  128. # database_preprod:
  129. # image: mongo:4.4.6
  130. # # ❌ SUPPRIMER l'exposition du port 27017
  131. # # ports:
  132. # # - "27017:27017"
  133. # volumes:
  134. # - ./backup:/backup
  135. # - mongo_data_preprod:/data/db
  136. # environment:
  137. # # ✅ AJOUTER l'authentification MongoDB
  138. # - MONGO_INITDB_ROOT_USERNAME=admin
  139. # - MONGO_INITDB_ROOT_PASSWORD=azerty10
  140. # - MONGO_INITDB_DATABASE=mean-fatboar-db
  141. # # ❌ SUPPRIMER tous les labels Traefik
  142. # # labels:
  143. # # - traefik.enable=true
  144. # # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  145. # networks:
  146. # # ❌ SUPPRIMER le réseau 'web'
  147. # - private # Seulement le réseau privé
  148. # restart: always
  149. # mongodb-backup-preprod:
  150. # image: tiredofit/mongodb-backup:latest
  151. # container_name: mongodb-backup-preprod
  152. # volumes:
  153. # - mongo_backups_preprod:/backup
  154. # environment:
  155. # - MONGODB_HOST=database_preprod
  156. # - MONGODB_PORT=27017
  157. # # ✅ AJOUTER l'authentification pour les sauvegardes
  158. # - MONGODB_USER=admin
  159. # - MONGODB_PASS=azerty10
  160. # - MONGODB_AUTHENTICATION_DATABASE=admin
  161. # - BACKUP_LOCATION=/backup
  162. # - BACKUP_COMPRESSION=GZIP
  163. # - BACKUP_SPLIT_DB=TRUE
  164. # - BACKUP_BEGIN=TRUE
  165. # - SCHEDULE=*/30 * * * *
  166. # - BACKUP_RETAIN_DAYS=7
  167. # - BACKUP_CLEANUP_TIME=0430
  168. # - NOTIFICATION_TYPE=none
  169. # - DEBUG_MODE=TRUE
  170. # - CONTAINER_ENABLE_MONITORING=TRUE
  171. # - CONTAINER_NAME=mongodb-backup-preprod
  172. # depends_on:
  173. # - database_preprod
  174. # networks:
  175. # - private
  176. # restart: unless-stopped
  177. # apache_preprod:
  178. # build:
  179. # context: ./
  180. # dockerfile: build/docker/apache/Dockerfile
  181. # ports:
  182. # - "8080:80"
  183. # networks:
  184. # - web
  185. # - private
  186. # volumes:
  187. # - /var/log:/var/log/apache2
  188. # labels:
  189. # - traefik.enable=true
  190. # - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  191. # - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  192. # - traefik.http.routers.apache_preprod.entrypoints=websecure
  193. # - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  194. # restart: always
  195. # version: '3.0' # specify docker-compose version
  196. # Define the services/ containers to be run
  197. # services:
  198. # angular: # name of the first service
  199. # build: angular-client # specify the directory of the Dockerfile
  200. # ports:
  201. # - "4200:4200" # specify port mapping
  202. # express: # name of the second service
  203. # build: express-server # specify the directory of the Dockerfile
  204. # ports:
  205. # - "9991:9991" #specify ports mapping
  206. # links:
  207. # - database # link this service to the database service
  208. # database: # name of the third service
  209. # image: mongo # specify image to build container from
  210. # ports:
  211. # - "27017:27017" # specify port forwarding
  212. # version: '3'
  213. # networks:
  214. # private:
  215. # web:
  216. # external:
  217. # name: web
  218. # #pipeline-test-mean-stack-docker_default:
  219. # #pipeline-test-mean-stack-docker_private:
  220. # #grafana:
  221. # volumes:
  222. # # app_data: {}
  223. # mongo_data_preprod:
  224. # services:
  225. # express_preprod:
  226. # build:
  227. # context: ./express-server
  228. # ports:
  229. # - "4000:4000"
  230. # networks:
  231. # - web
  232. # - private
  233. # labels:
  234. # - traefik.enable=true
  235. # - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  236. # - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  237. # - traefik.http.routers.express_preprod.entrypoints=websecure
  238. # - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  239. # links:
  240. # - database_preprod
  241. # restart: always
  242. # database_preprod:
  243. # # container_name: mongo_"${ENV}"
  244. # image: mongo:4.4.6
  245. # ports:
  246. # - "27017:27017"
  247. # volumes:
  248. # - ./backup:/backup
  249. # - mongo_data_preprod:/data/db
  250. # # - /var/lib/mongodb/data_preprod:/data/db
  251. # # - database:/data/database
  252. # labels:
  253. # - traefik.enable=true
  254. # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  255. # # - traefik.http.routers.apache_prod.rule=Host(`${URLMONGO}`)
  256. # - traefik.http.services.database_preprod.loadbalancer.server.port=27017
  257. # - traefik.http.routers.database_preprod.entrypoints=websecure
  258. # - traefik.http.routers.database_preprod.tls.certresolver=myresolver
  259. # networks:
  260. # - web
  261. # - private
  262. # #- pipeline-test-FatboarProject_default
  263. # #- pipeline-test-FatboarProject_private
  264. # restart: always
  265. # apache_preprod:
  266. # # container_name: apache_"${ENV}"
  267. # build:
  268. # context: ./
  269. # # dockerfile: build/docker/httpd/Dockerfile
  270. # dockerfile: build/docker/apache/Dockerfile
  271. # ports:
  272. # - "8080:80"
  273. # networks:
  274. # - web
  275. # - private
  276. # #- pipeline-test-FatboarProject_default
  277. # #- pipeline-test-FatboarProject_private
  278. # volumes:
  279. # - /var/log:/var/log/apache2
  280. # labels:
  281. # - traefik.enable=true
  282. # - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  283. # # - traefik.http.routers.apache_prod.rule=Host(`${URLANGULAR}`)
  284. # - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  285. # - traefik.http.routers.apache_preprod.entrypoints=websecure
  286. # - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  287. # restart: always