19 septembre 2024
Configurer MongoDB avec Traefik et docker

Ceci est un fichier de configuration Docker Compose qui définit un service nommé “mongo” basé sur l’image Docker officielle de MongoDB. Le service utilise l’environnement et les options de lancement suivants :

  • MONGO_INITDB_ROOT_USERNAME et MONGO_INITDB_ROOT_PASSWORD : ces variables d’environnement sont utilisées pour définir le nom d’utilisateur et le mot de passe de l’utilisateur root de la base de données MongoDB.
  • ports : cette option expose le port 27017 du conteneur sur le port 27017 de la machine hôte. Cela permet à d’autres services et applications de se connecter à la base de données MongoDB en utilisant le port 27017.
  • command : cette option spécifie la commande à exécuter lorsque le conteneur est démarré. Dans ce cas, la commande mongod est exécutée avec les options --bind_ip_all et --port 27017, ce qui signifie que le serveur MongoDB écoutera sur toutes les interfaces réseau et utilisera le port 27017.
  • volumes : cette option monte le volume nommé “data” sur le répertoire /data/db du conteneur. Cela permet de conserver les données de la base de données MongoDB sur le disque dur de la machine hôte, même si le conteneur est redémarré ou supprimé.
  • labels : ces étiquettes sont utilisées pour configurer l’intégration de ce service avec Traefik, qui est un reverse proxy Docker. Elles indiquent à Traefik comment acheminer les requêtes vers le service MongoDB et comment configurer la sécurité TLS (Transport Layer Security).
  • networks : cette option indique que le service MongoDB appartient au réseau nommé “web”, qui est défini en tant que réseau externe dans la section des réseaux de ce fichier de configuration. Cela signifie que le service MongoDB peut être accessible depuis d’autres conteneurs qui appartiennent au même réseau.
version: '3.8'
services:
  mongo:
    image: mongo
    restart: always
    container_name: mongo
    environment:
      - MONGO_INITDB_ROOT_USERNAME=mongo
      - MONGO_INITDB_ROOT_PASSWORD=mongo
    ports:
      - 27017:27017
    command: mongod --bind_ip_all --port 27017
    volumes:
      - data:/data/db:rw
    labels:
      - traefik.enable=true
      - traefik.docker.network=web
      - traefik.tcp.routers.mongo.entrypoints=https
      - traefik.tcp.routers.mongo.rule=HostSNI(`My.Ip.com`)
      - traefik.tcp.services.mongo.loadbalancer.server.port=27017
      - traefik.tcp.routers.mongo.service=mongo
      - traefik.tcp.routers.mongo.tls.certresolver=http
      - traefik.http.routers.mongo.tls=true
      - traefik.tcp.routers.mongo.tls.passthrough=true
    networks:
      - web
volumes:
   data:
networks:
  web:
    external: true

En résumé, ce fichier de configuration Docker Compose définit un service MongoDB qui est exposé sur le port 27017 de la machine hôte et qui utilise un volume nommé “data” pour stocker les données de la base de données. Le service est configuré pour être accessible via Traefik et est associé au réseau externe nommé “web”. Si vous avez des questions sur la façon dont cette configuration fonctionne, n’hésitez pas à poser une nouvelle question.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *