docker-compose.yml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  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. # Un volume Docker standard au lieu d'un dossier bindé
  16. driver: local
  17. services:
  18. express_preprod:
  19. build:
  20. context: ./express-server
  21. ports:
  22. - "4000:4000"
  23. networks:
  24. - web
  25. - private
  26. labels:
  27. - traefik.enable=true
  28. - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  29. - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  30. - traefik.http.routers.express_preprod.entrypoints=websecure
  31. - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  32. depends_on:
  33. - database_preprod
  34. restart: always
  35. database_preprod:
  36. image: mongo:4.4.6
  37. ports:
  38. - "27017:27017"
  39. volumes:
  40. - ./backup:/backup
  41. - mongo_data_preprod:/data/db # 👉 volume bindé vers /srv/mongo/data_preprod
  42. labels:
  43. - traefik.enable=true
  44. - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  45. - traefik.http.services.database_preprod.loadbalancer.server.port=27017
  46. - traefik.http.routers.database_preprod.entrypoints=websecure
  47. - traefik.http.routers.database_preprod.tls.certresolver=myresolver
  48. networks:
  49. - web
  50. - private
  51. restart: always
  52. mongodb-backup-preprod:
  53. image: tiredofit/mongodb-backup:latest
  54. container_name: mongodb-backup-preprod
  55. volumes:
  56. - mongo_backups_preprod:/backup
  57. environment:
  58. # Configuration de la connexion MongoDB - simplifiée
  59. - MONGODB_HOST=database_preprod
  60. - MONGODB_PORT=27017
  61. # Ne pas spécifier d'authentification si la base n'en utilise pas
  62. # Configuration des sauvegardes
  63. - BACKUP_LOCATION=/backup
  64. - BACKUP_COMPRESSION=GZIP
  65. - BACKUP_SPLIT_DB=TRUE
  66. - BACKUP_BEGIN=TRUE
  67. # Ne pas spécifier BACKUP_NAME si la base n'existe pas encore
  68. # Planification des sauvegardes (format CRON)
  69. - SCHEDULE=*/30 * * * *
  70. # Rotation des sauvegardes
  71. - BACKUP_RETAIN_DAYS=7
  72. - BACKUP_CLEANUP_TIME=0430
  73. # Notifications
  74. - NOTIFICATION_TYPE=none
  75. # Mode debug pour voir plus d'informations
  76. - DEBUG_MODE=TRUE
  77. # Autres options
  78. - CONTAINER_ENABLE_MONITORING=TRUE
  79. - CONTAINER_NAME=mongodb-backup-preprod
  80. depends_on:
  81. - database_preprod
  82. networks:
  83. - private
  84. restart: unless-stopped
  85. apache_preprod:
  86. build:
  87. context: ./
  88. dockerfile: build/docker/apache/Dockerfile
  89. ports:
  90. - "8080:80"
  91. networks:
  92. - web
  93. - private
  94. volumes:
  95. - /var/log:/var/log/apache2
  96. labels:
  97. - traefik.enable=true
  98. - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  99. - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  100. - traefik.http.routers.apache_preprod.entrypoints=websecure
  101. - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  102. restart: always
  103. # version: '3.0' # specify docker-compose version
  104. # Define the services/ containers to be run
  105. # services:
  106. # angular: # name of the first service
  107. # build: angular-client # specify the directory of the Dockerfile
  108. # ports:
  109. # - "4200:4200" # specify port mapping
  110. # express: # name of the second service
  111. # build: express-server # specify the directory of the Dockerfile
  112. # ports:
  113. # - "9991:9991" #specify ports mapping
  114. # links:
  115. # - database # link this service to the database service
  116. # database: # name of the third service
  117. # image: mongo # specify image to build container from
  118. # ports:
  119. # - "27017:27017" # specify port forwarding
  120. # version: '3'
  121. # networks:
  122. # private:
  123. # web:
  124. # external:
  125. # name: web
  126. # #pipeline-test-mean-stack-docker_default:
  127. # #pipeline-test-mean-stack-docker_private:
  128. # #grafana:
  129. # volumes:
  130. # # app_data: {}
  131. # mongo_data_preprod:
  132. # services:
  133. # express_preprod:
  134. # build:
  135. # context: ./express-server
  136. # ports:
  137. # - "4000:4000"
  138. # networks:
  139. # - web
  140. # - private
  141. # labels:
  142. # - traefik.enable=true
  143. # - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  144. # - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  145. # - traefik.http.routers.express_preprod.entrypoints=websecure
  146. # - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  147. # links:
  148. # - database_preprod
  149. # restart: always
  150. # database_preprod:
  151. # # container_name: mongo_"${ENV}"
  152. # image: mongo:4.4.6
  153. # ports:
  154. # - "27017:27017"
  155. # volumes:
  156. # - ./backup:/backup
  157. # - mongo_data_preprod:/data/db
  158. # # - /var/lib/mongodb/data_preprod:/data/db
  159. # # - database:/data/database
  160. # labels:
  161. # - traefik.enable=true
  162. # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  163. # # - traefik.http.routers.apache_prod.rule=Host(`${URLMONGO}`)
  164. # - traefik.http.services.database_preprod.loadbalancer.server.port=27017
  165. # - traefik.http.routers.database_preprod.entrypoints=websecure
  166. # - traefik.http.routers.database_preprod.tls.certresolver=myresolver
  167. # networks:
  168. # - web
  169. # - private
  170. # #- pipeline-test-FatboarProject_default
  171. # #- pipeline-test-FatboarProject_private
  172. # restart: always
  173. # apache_preprod:
  174. # # container_name: apache_"${ENV}"
  175. # build:
  176. # context: ./
  177. # # dockerfile: build/docker/httpd/Dockerfile
  178. # dockerfile: build/docker/apache/Dockerfile
  179. # ports:
  180. # - "8080:80"
  181. # networks:
  182. # - web
  183. # - private
  184. # #- pipeline-test-FatboarProject_default
  185. # #- pipeline-test-FatboarProject_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.routers.apache_prod.rule=Host(`${URLANGULAR}`)
  192. # - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  193. # - traefik.http.routers.apache_preprod.entrypoints=websecure
  194. # - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  195. # restart: always