docker-compose.yml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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 # 👉 Dossier réel du serveur pour la persistance
  14. mongo_backups_preprod:
  15. driver: local
  16. driver_opts:
  17. type: none
  18. o: bind
  19. device: /srv/mongo/backups_preprod # 👉 Dossier réel du serveur pour les sauvegardes
  20. services:
  21. express_preprod:
  22. build:
  23. context: ./express-server
  24. ports:
  25. - "4000:4000"
  26. networks:
  27. - web
  28. - private
  29. labels:
  30. - traefik.enable=true
  31. - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  32. - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  33. - traefik.http.routers.express_preprod.entrypoints=websecure
  34. - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  35. depends_on:
  36. - database_preprod
  37. restart: always
  38. database_preprod:
  39. image: mongo:4.4.6
  40. ports:
  41. - "27017:27017"
  42. volumes:
  43. - ./backup:/backup
  44. - mongo_data_preprod:/data/db # 👉 volume bindé vers /srv/mongo/data_preprod
  45. labels:
  46. - traefik.enable=true
  47. - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  48. - traefik.http.services.database_preprod.loadbalancer.server.port=27017
  49. - traefik.http.routers.database_preprod.entrypoints=websecure
  50. - traefik.http.routers.database_preprod.tls.certresolver=myresolver
  51. networks:
  52. - web
  53. - private
  54. restart: always
  55. mongodb-backup-preprod:
  56. image: tiredofit/mongodb-backup:latest
  57. container_name: mongodb-backup-preprod
  58. volumes:
  59. - mongo_backups_preprod:/backup
  60. environment:
  61. # Configuration de la connexion MongoDB
  62. - MONGODB_HOST=database_preprod
  63. - MONGODB_PORT=27017
  64. # Si votre MongoDB a besoin d'authentification, décommentez et ajustez les lignes suivantes:
  65. # - MONGODB_USER=admin
  66. # - MONGODB_PASS=password
  67. # - MONGODB_AUTH_DB=admin
  68. # Configuration des sauvegardes
  69. - BACKUP_LOCATION=/backup
  70. - BACKUP_COMPRESSION=GZIP
  71. - BACKUP_SPLIT_DB=TRUE # Sauvegarde chaque base dans un fichier séparé
  72. - BACKUP_BEGIN=TRUE # Effectue une sauvegarde immédiatement au démarrage
  73. - BACKUP_NAME=mean-fatboar-db # Spécifie la base de données à sauvegarder
  74. # Planification des sauvegardes (format CRON)
  75. - SCHEDULE=*/30 * * * * # Toutes les 30 minutes
  76. # Rotation des sauvegardes
  77. - BACKUP_RETAIN_DAYS=7 # Garde les sauvegardes pendant 7 jours
  78. - BACKUP_CLEANUP_TIME=0430 # Nettoyage des anciennes sauvegardes à 4h30 du matin
  79. # Notifications (optionnel)
  80. - NOTIFICATION_TYPE=none # Peut être configuré pour mail, slack, etc.
  81. # Autres options
  82. - CONTAINER_ENABLE_MONITORING=TRUE
  83. - CONTAINER_NAME=mongodb-backup-preprod
  84. depends_on:
  85. - database_preprod
  86. networks:
  87. - private
  88. restart: unless-stopped
  89. apache_preprod:
  90. build:
  91. context: ./
  92. dockerfile: build/docker/apache/Dockerfile
  93. ports:
  94. - "8080:80"
  95. networks:
  96. - web
  97. - private
  98. volumes:
  99. - /var/log:/var/log/apache2
  100. labels:
  101. - traefik.enable=true
  102. - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  103. - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  104. - traefik.http.routers.apache_preprod.entrypoints=websecure
  105. - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  106. restart: always
  107. # version: '3.0' # specify docker-compose version
  108. # Define the services/ containers to be run
  109. # services:
  110. # angular: # name of the first service
  111. # build: angular-client # specify the directory of the Dockerfile
  112. # ports:
  113. # - "4200:4200" # specify port mapping
  114. # express: # name of the second service
  115. # build: express-server # specify the directory of the Dockerfile
  116. # ports:
  117. # - "9991:9991" #specify ports mapping
  118. # links:
  119. # - database # link this service to the database service
  120. # database: # name of the third service
  121. # image: mongo # specify image to build container from
  122. # ports:
  123. # - "27017:27017" # specify port forwarding
  124. # version: '3'
  125. # networks:
  126. # private:
  127. # web:
  128. # external:
  129. # name: web
  130. # #pipeline-test-mean-stack-docker_default:
  131. # #pipeline-test-mean-stack-docker_private:
  132. # #grafana:
  133. # volumes:
  134. # # app_data: {}
  135. # mongo_data_preprod:
  136. # services:
  137. # express_preprod:
  138. # build:
  139. # context: ./express-server
  140. # ports:
  141. # - "4000:4000"
  142. # networks:
  143. # - web
  144. # - private
  145. # labels:
  146. # - traefik.enable=true
  147. # - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  148. # - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  149. # - traefik.http.routers.express_preprod.entrypoints=websecure
  150. # - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  151. # links:
  152. # - database_preprod
  153. # restart: always
  154. # database_preprod:
  155. # # container_name: mongo_"${ENV}"
  156. # image: mongo:4.4.6
  157. # ports:
  158. # - "27017:27017"
  159. # volumes:
  160. # - ./backup:/backup
  161. # - mongo_data_preprod:/data/db
  162. # # - /var/lib/mongodb/data_preprod:/data/db
  163. # # - database:/data/database
  164. # labels:
  165. # - traefik.enable=true
  166. # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  167. # # - traefik.http.routers.apache_prod.rule=Host(`${URLMONGO}`)
  168. # - traefik.http.services.database_preprod.loadbalancer.server.port=27017
  169. # - traefik.http.routers.database_preprod.entrypoints=websecure
  170. # - traefik.http.routers.database_preprod.tls.certresolver=myresolver
  171. # networks:
  172. # - web
  173. # - private
  174. # #- pipeline-test-FatboarProject_default
  175. # #- pipeline-test-FatboarProject_private
  176. # restart: always
  177. # apache_preprod:
  178. # # container_name: apache_"${ENV}"
  179. # build:
  180. # context: ./
  181. # # dockerfile: build/docker/httpd/Dockerfile
  182. # dockerfile: build/docker/apache/Dockerfile
  183. # ports:
  184. # - "8080:80"
  185. # networks:
  186. # - web
  187. # - private
  188. # #- pipeline-test-FatboarProject_default
  189. # #- pipeline-test-FatboarProject_private
  190. # volumes:
  191. # - /var/log:/var/log/apache2
  192. # labels:
  193. # - traefik.enable=true
  194. # - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  195. # # - traefik.http.routers.apache_prod.rule=Host(`${URLANGULAR}`)
  196. # - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  197. # - traefik.http.routers.apache_preprod.entrypoints=websecure
  198. # - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  199. # restart: always