Docker Profile

Docker profile ou comment lancer de façon sélective des containers avec docker compose.

Docker Profile

Bonjour,

Docker c'est génial mais il me manquait une chose : la possibilité avec compose de lancer un container spécifique depuis votre fichier yaml. Je m'explique : vous avez votre fichier yaml avec vos containers principaux et quand vous voulez tester un nouveau container, il faut le rajouter (copier/coller) et ensuite après l'essai le virer (et la je le "stock" dans un fichier archive). Si bien évidemment vous avez un docker compose par container, tant mieux pour vous mais en terme de maintenance c'est inefficace.

Et bah maintenant c'est terminé ! Plus besoin de copier / coller et d'archiver mes essais. Quand vous créer un docker il suffit de rajoute la ligne "profiles: ["monprofile"]". Petit exemple dans le container speedtest:

  speedtest:
    # Openspeedtest
    # https://hub.docker.com/r/openspeedtest/latest
    image: openspeedtest/latest:latest
    container_name: speedtest
    restart: unless-stopped
    profiles: ["speedtest"]
    security_opt:
      - no-new-privileges:true    
    networks:
      - traefik
    ports:
      - "$SPEEDTEST_PORT_HTTP:3000"
      - "$SPEEDTEST_PORT_HTTPS:3001"      
    environment:      
      - TZ=$TZ     

Ensuite quand vous allez lancer les containers il suffit de déclarer votre profil.

docker-compose --profile speedtest up -d

Il va alors lancer les containers principaux (ceux qui n'ont pas de profil) et les containers qui ont le profil "speedtest". C'est génial.

Vous pouvez bien sur utiliser plusieurs profils à la suite pour faire encore plus de tests. Ca peut donner un truc comme ça :

docker-compose --profile speedtest --profile prod -- profile test  up -d

C'est simple, efficace et ça me permet de faciliter grandement la maintenance de mes containers et de pouvoirs lancer ceux dont j'ai besoin uniquement quand nécessaire.

@+