Compose: env_file interpoliert Vars aus .env und Shell genauso wie die Umgebung

Erstellt am 11. Sept. 2016  ·  3Kommentare  ·  Quelle: docker/compose

Ich habe einige Konfigurationsvariablen in der Datei ".env" definiert.
Also, wenn ich sie so in meiner Compose-Yml-Datei verwenden kann:

  environment:
   - VAR=${VAL_FROM_ENV}
  env_file:
    - etc/environment.yml

Warum kann ich dies nicht in meiner environment.yml verwenden?

DEMO_VAR='${VAL_FROM_ENV}'

Ich sehe env_file als Erweiterung des Umgebungsfeldes in einer Datei , und es ist durchaus sinnvoll, auch die Überschreibung von Shell-Variablen zu beachten.

Es macht für mich Sinn, dass die .env-Datei für Compose und Umgebung/env_file für Docker-Container ist.
Es macht für mich auch absolut Sinn, dass Terminal-Env-Variablen die in .env überschreiben.

Ich finde es ziemlich cool, dass ich viele env.yml-Dateien oder nur eine haben kann und sie wiederverwenden kann. Wenn es genauso funktioniert wie eine Umgebungsfeldvariable, würde das ganze Komponieren drastisch dynamischer und vernetzter (und Sie geben nicht alles überall weiter). Und ich müsste nicht alles an vielen verschiedenen Stellen neu eingeben.

Hintergrund - Ich orchestriere eine Entwicklungsumgebung auf einem Mac mit Docker-Maschine / Compose (vorher mit Vagrant) und suche nach einer Möglichkeit, alle wichtigen Einstellungen pro App in einer Datei zu speichern (wo die App auf einem in der Compose-Datei definierten Stack läuft), was IMHO erleichtert den Umgang mit vielen Projekten/Entwicklern. Außerdem mag ich es nicht wirklich, sensible Daten in verschiedenen Konfigurationsdateien fest zu codieren.

Ich habe die Diskussion zu #3435 (Variablen interpolieren von Umgebung oder env_file) verfolgt und obwohl ich das unbedingt möchte, glaube ich nicht, dass die yml-Datei zum Verfassen ein guter Ort ist, um Variablen zu definieren, die an anderer Stelle verwendet werden sollen (in Verfassen / Docker-Dateien? ), da dies zu einer völlig unlesbaren Mischung von Vars führen würde (wer setzt oder liest wo?).

Danke schön. :)

Docker-Compose-Version
docker-compose Version 1.8.0, Build unbekannt
docker-py-Version: 1.9.0
CPython-Version: 2.7.10
OpenSSL-Version: OpenSSL 0.9.8zh 14.01.2016

stale

Hilfreichster Kommentar

Wirklich inkonsistente Implementierung, ohne dass dieser Teil funktioniert.

Alle 3 Kommentare

Wirklich inkonsistente Implementierung, ohne dass dieser Teil funktioniert.

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität hatte. Es wird geschlossen, wenn keine weitere Aktivität stattfindet. Vielen Dank für Ihre Beiträge.

Dieses Problem wurde automatisch geschlossen, da es während des veralteten Zeitraums keine letzten Aktivitäten hatte.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen