⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Éléments de niveau supérieur configs

Table des matières

Les configurations permettent aux services d'adapter leur comportement sans avoir besoin de reconstruire une image Docker. Comme pour les volumes, les configurations sont montées en tant que fichiers dans le système de fichiers d'un conteneur. L'emplacement du point de montage dans le conteneur est par défaut /<config-name> dans les conteneurs Linux et C:\<config-name> dans les conteneurs Windows.

Les services peuvent seulement accéder aux configs quand explicitement accordés par un attribut configs dans l'élément de niveau supérieur services.

Par défaut, la config :

  • Appartient à l'utilisateur qui exécute la commande conteneur mais peut être remplacée par la configuration de service.
  • A des permissions lisibles par le monde (mode 0444), sauf si le service est configuré pour remplacer cela.

La déclaration de niveau supérieur configs définit ou référence des données de configuration qui sont accordées aux services dans votre application Compose. La source de la config est soit file, soit external.

  • file : La config est créée avec le contenu du fichier au chemin spécifié.
  • environment : Le contenu de la config est créé avec la valeur d'une variable d'environnement. Introduit dans Docker Compose version 2.23.1.
  • content : Le contenu est créé avec la valeur en ligne. Introduit dans Docker Compose version 2.23.1.
  • external : Si défini à true, external spécifie que cette config a déjà été créée. Compose n'essaie pas de la créer, et si elle n'existe pas, une erreur se produit.
  • name : Le nom de l'objet config dans le moteur de conteneur à rechercher. Ce champ peut être utilisé pour référencer des configs qui contiennent des caractères spéciaux. Le nom est utilisé tel quel et ne sera pas délimité avec le nom du projet.

Exemple 1

<nom_projet>_http_config est créé quand l'application est déployée, en enregistrant le contenu de httpd.conf comme données de configuration.

configs:
  http_config:
    file: ./httpd.conf

Alternativement, http_config peut être déclaré comme externe. Compose recherche http_config pour exposer les données de configuration aux services pertinents.

configs:
  http_config:
    external: true

Exemple 2

<nom_projet>_app_config est créé quand l'application est déployée, en enregistrant le contenu en ligne comme données de configuration. Cela signifie que Compose infère les variables lors de la création de la config, ce qui vous permet d'ajuster le contenu selon la configuration de service :

configs:
  app_config:
    content: |
      debug=${DEBUG}
      spring.application.admin.enabled=${DEBUG}
      spring.application.name=${COMPOSE_PROJECT_NAME}

Exemple 3

La recherche de configs externes peut aussi utiliser une clé distincte en spécifiant un name.

L'exemple suivant modifie le précédent pour rechercher une config en utilisant le paramètre HTTP_CONFIG_KEY. La clé de recherche réelle est définie au moment du déploiement par l'interpolation de variables, mais exposée aux conteneurs comme ID codé en dur http_config.

configs:
  http_config:
    external: true
    name: "${HTTP_CONFIG_KEY}"

Si external est défini à true, tous les autres attributs à part name sont non pertinents. Si Compose détecte un autre attribut, il rejette le fichier Compose comme invalide.