Procházet zdrojové kódy

integration de l'image backup mongodb dans docker-compose.yml

henri carmelo před 7 měsíci
rodič
revize
d2e72a7a96
2 změnil soubory, kde provedl 50 přidání a 9 odebrání
  1. 0 4
      Jenkinsfile
  2. 50 5
      docker-compose.yml

+ 0 - 4
Jenkinsfile

@@ -56,12 +56,8 @@ pipeline {
         stage('Build & Deploy') {
             steps {
                 sh '''
-            set -e
             docker-compose stop
-            docker-compose rm -f
             docker-compose build --no-cache
-            # Supprimer le volume si plus utilisé
-            docker volume rm fatboar_dev_mongo_data_preprod || true
             docker-compose up -d --force-recreate
 
                 '''

+ 50 - 5
docker-compose.yml

@@ -13,9 +13,14 @@ volumes:
       type: none
       o: bind
       device: /srv/mongo/data_preprod  # 👉 Dossier réel du serveur pour la persistance
+  mongo_backups_preprod:
+    driver: local
+    driver_opts:
+      type: none
+      o: bind
+      device: /srv/mongo/backups_preprod  # 👉 Dossier réel du serveur pour les sauvegardes
 
 services:
-
   express_preprod:
     build:
       context: ./express-server
@@ -46,14 +51,54 @@ services:
       - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`)
       - traefik.http.services.database_preprod.loadbalancer.server.port=27017
       - traefik.http.routers.database_preprod.entrypoints=websecure
-      - traefik.http.routers.database_preprod.tls.certresolver=myresolver  
+      - traefik.http.routers.database_preprod.tls.certresolver=myresolver
     networks:
       - web
       - private
     restart: always
 
+  mongodb-backup-preprod:
+    image: tiredofit/mongodb-backup:latest
+    container_name: mongodb-backup-preprod
+    volumes:
+      - mongo_backups_preprod:/backup
+    environment:
+      # Configuration de la connexion MongoDB
+      - MONGODB_HOST=database_preprod
+      - MONGODB_PORT=27017
+      # Si votre MongoDB a besoin d'authentification, décommentez et ajustez les lignes suivantes:
+      # - MONGODB_USER=admin
+      # - MONGODB_PASS=password
+      # - MONGODB_AUTH_DB=admin
+      
+      # Configuration des sauvegardes
+      - BACKUP_LOCATION=/backup
+      - BACKUP_COMPRESSION=GZIP
+      - BACKUP_SPLIT_DB=TRUE        # Sauvegarde chaque base dans un fichier séparé
+      - BACKUP_BEGIN=TRUE           # Effectue une sauvegarde immédiatement au démarrage
+      - BACKUP_NAME=mean-fatboar-db  # Spécifie la base de données à sauvegarder
+      
+      # Planification des sauvegardes (format CRON)
+      - SCHEDULE=*/30 * * * *       # Toutes les 30 minutes
+      
+      # Rotation des sauvegardes
+      - BACKUP_RETAIN_DAYS=7        # Garde les sauvegardes pendant 7 jours
+      - BACKUP_CLEANUP_TIME=0430    # Nettoyage des anciennes sauvegardes à 4h30 du matin
+      
+      # Notifications (optionnel)
+      - NOTIFICATION_TYPE=none      # Peut être configuré pour mail, slack, etc.
+      
+      # Autres options
+      - CONTAINER_ENABLE_MONITORING=TRUE
+      - CONTAINER_NAME=mongodb-backup-preprod
+    depends_on:
+      - database_preprod
+    networks:
+      - private
+    restart: unless-stopped
+
   apache_preprod:
-    build:  
+    build:
       context: ./
       dockerfile: build/docker/apache/Dockerfile
     ports:
@@ -61,14 +106,14 @@ services:
     networks:
       - web
       - private
-    volumes:     
+    volumes:
       - /var/log:/var/log/apache2
     labels:
       - traefik.enable=true
       - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`)
       - traefik.http.services.apache_preprod.loadbalancer.server.port=80
       - traefik.http.routers.apache_preprod.entrypoints=websecure
-      - traefik.http.routers.apache_preprod.tls.certresolver=myresolver  
+      - traefik.http.routers.apache_preprod.tls.certresolver=myresolver
     restart: always