0

J'ai une application existante qui utilise un fichier de configuration d'application qui ressemble à:Docker Compose Nested environnement variable

"ConnectionInfo": { 
    "ServerName": "The Server URL", 
    "DatabaseName": "The DatabaseName", 
    "UserName": "The User Name", 
    "Password": "The Password"} 

Maintenant, quand j'ai un cadre simple, dire

"ConnectionString":"My Connection String" 

Je comprends pour le remplacer dans le fichier compose.yml:

environment: 
    - ConnectionString=what I want it to be 

la question est, comment définissez-vous, par exemple, le nom du serveur dans le haut?

+0

Votre application est celui qui lit les variables d'environnement, cela dépend donc de ce que c'est et de comment cela fonctionne. Cela n'a rien à voir avec Docker Compose. – jwodder

+0

Pourquoi ne pas simplement passer le fichier de configuration de l'hôte lui-même? –

+0

Ahm Je n'ai aucun problème à lire la variable d'environnement existante - mais le fichier Compose (ou le fichier .env associé) peut remplacer les paramètres dans appsettings.json via la variable d'environnement, mais je ne sais comment le faire pour un non imbriqué variable d'environnement –

Répondre

0

Vous pouvez définir des configurations imbriquées en utilisant deux points pour séparer les sections imbriquées:

Pour définir le nom du serveur ici:

"ConnectionInfo": { 
    "ServerName": "override this via compose environment" 
} 

Override comme ceci:

environment: 
    - ConnectionInfo:ServerName=MyServerName