Aller au contenu

Conventions Docker

1. IP centralisées (network.env)

  • Format IP_<SERVICE> = 172.16.0.x. Les composes référencent ${IP_<SERVICE>}.
  • compose.yaml injecte network.env puis le .env du stack via env_file: → résolution des IP depuis la racine /srv/docker.

2. Fichiers .env

  • /srv/docker/.env = master (superset des secrets : TZ, PASSWORD, clés API…).
  • compose/<stack>/.env = épuré (uniquement les variables utilisées par le stack).
  • mail a en plus mailu.env ; immich a son propre .env.
  • Aucun secret dans le wiki : seulement des pointeurs (voir Sécurité).

3. Modèle de service (gabarit)

Les services suivent ce patron (cf. n'importe quelle page de stack) :

services:
  monservice:
    image: "...:tag"            # ou build: { context: /srv/docker/build/<image> }
    container_name: monservice
    hostname: monservice
    restart: unless-stopped
    user: "1000:996"            # jonathan:docker (fichiers volumes = jonathan)
    networks:
      dockernet:
        ipv4_address: ${IP_MONSERVICE}
    environment:
      - TZ
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /srv/docker/volumes/monservice/...:/...
    healthcheck:
      test: ["CMD-SHELL", "wget -q -O /dev/null http://localhost:<port>/ || exit 1"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 30s
networks:
  dockernet: { external: true, name: dockernet }

4. Dépendances inter-stacks

  • depends_on ne fonctionne qu'au sein d'un même stack. Les dépendances inter-stacks (HA→bases, mailu→redis, frigate→emqx…) ont été retirées : pas d'ordre de démarrage global.
  • La convergence repose sur les politiques restart: (reconnexion auto) et les depends_on intra-stack. docker compose up -d démarre tout.

5. Données & caches

  • Données persistées : /srv/docker/volumes/<service>/sauvegardées (rsync + dumps).
  • Données régénérables (caches build/ML) : /srv/docker/cache/<app>/exclues des backups.

6. Ajouter un service

Procédure complète (IP, .env, NPM, Authelia, monitoring) : voir Runbook → Ajouter un conteneur.