docker-compose.yml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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. # Variables pour connecter à MongoDB avec authentification
  35. - MONGODB_URI=mongodb://admin:azerty10@database_preprod:27017/mean-fatboar-db?authSource=admin
  36. restart: always
  37. database_preprod:
  38. image: mongo:4.4.6
  39. #❌ SUPPRIMER l'exposition du port 27017
  40. ports:
  41. - "27017:27017"
  42. volumes:
  43. - ./backup:/backup
  44. - mongo_data_preprod:/data/db
  45. environment:
  46. # ✅ AJOUTER l'authentification MongoDB
  47. - MONGO_INITDB_ROOT_USERNAME=admin
  48. - MONGO_INITDB_ROOT_PASSWORD=azerty10
  49. - MONGO_INITDB_DATABASE=mean-fatboar-db
  50. # ❌ SUPPRIMER tous les labels Traefik
  51. # labels:
  52. # - traefik.enable=true
  53. # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  54. networks:
  55. # ❌ SUPPRIMER le réseau 'web'
  56. - private # Seulement le réseau privé
  57. restart: always
  58. mongodb-backup-preprod:
  59. image: tiredofit/mongodb-backup:latest
  60. container_name: mongodb-backup-preprod
  61. volumes:
  62. - mongo_backups_preprod:/backup
  63. environment:
  64. - MONGODB_HOST=database_preprod
  65. - MONGODB_PORT=27017
  66. # ✅ AJOUTER l'authentification pour les sauvegardes
  67. - MONGODB_USER=admin
  68. - MONGODB_PASS=azerty10
  69. - MONGODB_AUTHENTICATION_DATABASE=admin
  70. - BACKUP_LOCATION=/backup
  71. - BACKUP_COMPRESSION=GZIP
  72. - BACKUP_SPLIT_DB=TRUE
  73. - BACKUP_BEGIN=TRUE
  74. - SCHEDULE=*/30 * * * *
  75. - BACKUP_RETAIN_DAYS=7
  76. - BACKUP_CLEANUP_TIME=0430
  77. - NOTIFICATION_TYPE=none
  78. - DEBUG_MODE=TRUE
  79. - CONTAINER_ENABLE_MONITORING=TRUE
  80. - CONTAINER_NAME=mongodb-backup-preprod
  81. depends_on:
  82. - database_preprod
  83. networks:
  84. - private
  85. restart: unless-stopped
  86. apache_preprod:
  87. build:
  88. context: ./
  89. dockerfile: build/docker/apache/Dockerfile
  90. ports:
  91. - "8080:80"
  92. networks:
  93. - web
  94. - private
  95. volumes:
  96. - /var/log:/var/log/apache2
  97. labels:
  98. - traefik.enable=true
  99. - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  100. - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  101. - traefik.http.routers.apache_preprod.entrypoints=websecure
  102. - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  103. restart: always
  104. # version: '3.0' # specify docker-compose version
  105. # Define the services/ containers to be run
  106. # services:
  107. # angular: # name of the first service
  108. # build: angular-client # specify the directory of the Dockerfile
  109. # ports:
  110. # - "4200:4200" # specify port mapping
  111. # express: # name of the second service
  112. # build: express-server # specify the directory of the Dockerfile
  113. # ports:
  114. # - "9991:9991" #specify ports mapping
  115. # links:
  116. # - database # link this service to the database service
  117. # database: # name of the third service
  118. # image: mongo # specify image to build container from
  119. # ports:
  120. # - "27017:27017" # specify port forwarding
  121. # version: '3'
  122. # networks:
  123. # private:
  124. # web:
  125. # external:
  126. # name: web
  127. # #pipeline-test-mean-stack-docker_default:
  128. # #pipeline-test-mean-stack-docker_private:
  129. # #grafana:
  130. # volumes:
  131. # # app_data: {}
  132. # mongo_data_preprod:
  133. # services:
  134. # express_preprod:
  135. # build:
  136. # context: ./express-server
  137. # ports:
  138. # - "4000:4000"
  139. # networks:
  140. # - web
  141. # - private
  142. # labels:
  143. # - traefik.enable=true
  144. # - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`)
  145. # - traefik.http.services.express_preprod.loadbalancer.server.port=4000
  146. # - traefik.http.routers.express_preprod.entrypoints=websecure
  147. # - traefik.http.routers.express_preprod.tls.certresolver=myresolver
  148. # links:
  149. # - database_preprod
  150. # restart: always
  151. # database_preprod:
  152. # # container_name: mongo_"${ENV}"
  153. # image: mongo:4.4.6
  154. # ports:
  155. # - "27017:27017"
  156. # volumes:
  157. # - ./backup:/backup
  158. # - mongo_data_preprod:/data/db
  159. # # - /var/lib/mongodb/data_preprod:/data/db
  160. # # - database:/data/database
  161. # labels:
  162. # - traefik.enable=true
  163. # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
  164. # # - traefik.http.routers.apache_prod.rule=Host(`${URLMONGO}`)
  165. # - traefik.http.services.database_preprod.loadbalancer.server.port=27017
  166. # - traefik.http.routers.database_preprod.entrypoints=websecure
  167. # - traefik.http.routers.database_preprod.tls.certresolver=myresolver
  168. # networks:
  169. # - web
  170. # - private
  171. # #- pipeline-test-FatboarProject_default
  172. # #- pipeline-test-FatboarProject_private
  173. # restart: always
  174. # apache_preprod:
  175. # # container_name: apache_"${ENV}"
  176. # build:
  177. # context: ./
  178. # # dockerfile: build/docker/httpd/Dockerfile
  179. # dockerfile: build/docker/apache/Dockerfile
  180. # ports:
  181. # - "8080:80"
  182. # networks:
  183. # - web
  184. # - private
  185. # #- pipeline-test-FatboarProject_default
  186. # #- pipeline-test-FatboarProject_private
  187. # volumes:
  188. # - /var/log:/var/log/apache2
  189. # labels:
  190. # - traefik.enable=true
  191. # - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
  192. # # - traefik.http.routers.apache_prod.rule=Host(`${URLANGULAR}`)
  193. # - traefik.http.services.apache_preprod.loadbalancer.server.port=80
  194. # - traefik.http.routers.apache_preprod.entrypoints=websecure
  195. # - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
  196. # restart: always