version: '3' networks: private: web: external: name: web volumes: mongo_data_preprod: driver: local driver_opts: type: none o: bind device: /srv/mongo/data_preprod # 👉 Dossier réel du serveur pour la persistance mongo_backups_preprod: # Un volume Docker standard au lieu d'un dossier bindé driver: local services: express_preprod: build: context: ./express-server ports: - "4000:4000" networks: - web - private labels: - traefik.enable=true - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`) - traefik.http.services.express_preprod.loadbalancer.server.port=4000 - traefik.http.routers.express_preprod.entrypoints=websecure - traefik.http.routers.express_preprod.tls.certresolver=myresolver depends_on: - database_preprod restart: always database_preprod: image: mongo:4.4.6 ports: - "27017:27017" volumes: - ./backup:/backup - mongo_data_preprod:/data/db # 👉 volume bindé vers /srv/mongo/data_preprod labels: - traefik.enable=true - 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 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 - simplifiée - MONGODB_HOST=database_preprod - MONGODB_PORT=27017 # Ne pas spécifier d'authentification si la base n'en utilise pas # Configuration des sauvegardes - BACKUP_LOCATION=/backup - BACKUP_COMPRESSION=GZIP - BACKUP_SPLIT_DB=TRUE - BACKUP_BEGIN=TRUE # Ne pas spécifier BACKUP_NAME si la base n'existe pas encore # Planification des sauvegardes (format CRON) - SCHEDULE=*/30 * * * * # Rotation des sauvegardes - BACKUP_RETAIN_DAYS=7 - BACKUP_CLEANUP_TIME=0430 # Notifications - NOTIFICATION_TYPE=none # Mode debug pour voir plus d'informations - DEBUG_MODE=TRUE # Autres options - CONTAINER_ENABLE_MONITORING=TRUE - CONTAINER_NAME=mongodb-backup-preprod depends_on: - database_preprod networks: - private restart: unless-stopped apache_preprod: build: context: ./ dockerfile: build/docker/apache/Dockerfile ports: - "8080:80" networks: - web - private 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 restart: always # version: '3.0' # specify docker-compose version # Define the services/ containers to be run # services: # angular: # name of the first service # build: angular-client # specify the directory of the Dockerfile # ports: # - "4200:4200" # specify port mapping # express: # name of the second service # build: express-server # specify the directory of the Dockerfile # ports: # - "9991:9991" #specify ports mapping # links: # - database # link this service to the database service # database: # name of the third service # image: mongo # specify image to build container from # ports: # - "27017:27017" # specify port forwarding # version: '3' # networks: # private: # web: # external: # name: web # #pipeline-test-mean-stack-docker_default: # #pipeline-test-mean-stack-docker_private: # #grafana: # volumes: # # app_data: {} # mongo_data_preprod: # services: # express_preprod: # build: # context: ./express-server # ports: # - "4000:4000" # networks: # - web # - private # labels: # - traefik.enable=true # - traefik.http.routers.express_preprod.rule=Host(`api-preprod.foodgame.fr`) # - traefik.http.services.express_preprod.loadbalancer.server.port=4000 # - traefik.http.routers.express_preprod.entrypoints=websecure # - traefik.http.routers.express_preprod.tls.certresolver=myresolver # links: # - database_preprod # restart: always # database_preprod: # # container_name: mongo_"${ENV}" # image: mongo:4.4.6 # ports: # - "27017:27017" # volumes: # - ./backup:/backup # - mongo_data_preprod:/data/db # # - /var/lib/mongodb/data_preprod:/data/db # # - database:/data/database # labels: # - traefik.enable=true # - traefik.http.routers.database_preprod.rule=Host(`mongodb-preprod.foodgame.fr`) # # - traefik.http.routers.apache_prod.rule=Host(`${URLMONGO}`) # - traefik.http.services.database_preprod.loadbalancer.server.port=27017 # - traefik.http.routers.database_preprod.entrypoints=websecure # - traefik.http.routers.database_preprod.tls.certresolver=myresolver # networks: # - web # - private # #- pipeline-test-FatboarProject_default # #- pipeline-test-FatboarProject_private # restart: always # apache_preprod: # # container_name: apache_"${ENV}" # build: # context: ./ # # dockerfile: build/docker/httpd/Dockerfile # dockerfile: build/docker/apache/Dockerfile # ports: # - "8080:80" # networks: # - web # - private # #- pipeline-test-FatboarProject_default # #- pipeline-test-FatboarProject_private # volumes: # - /var/log:/var/log/apache2 # labels: # - traefik.enable=true # - traefik.http.routers.apache_preprod.rule=Host(`angular-preprod.foodgame.fr`) # # - traefik.http.routers.apache_prod.rule=Host(`${URLANGULAR}`) # - traefik.http.services.apache_preprod.loadbalancer.server.port=80 # - traefik.http.routers.apache_preprod.entrypoints=websecure # - traefik.http.routers.apache_preprod.tls.certresolver=myresolver # restart: always