Dockerfile: so stellen Sie die env-variable aus der Datei-Inhalt

Ich möchte eine Umgebungsvariable festlegen, die in meinem Dockerfile.

Habe ich eine .env - Datei, die wie folgt aussieht:
FOO=bar.

In meinem Dockerfile, ich habe einen Befehl, analysiert den Inhalt der Datei und weist es FOO.

RUN 'export FOO=$(echo "$(cut -d'=' -f2 <<< $(grep FOO .env))")'

Das problem das ich laufen in ist, dass das obige Skript nicht zurück, was ich es brauche. In der Tat, es nichts zurückgibt.

Wenn ich docker-compose up --build es schlägt fehl mit dieser Fehlermeldung.

The command '/bin/sh -c 'export FOO=$(echo "$(cut -d'=' -f2 <<< $(grep FOO .env))")'' returned a non-zero code: 127

Ich weiß, dass der Befehl /bin/sh -c 'echo "$(cut -d'=' -f2 <<< $(grep FOO .env))"' erzeugt die korrekte Ausgabe, aber ich kann nicht herausfinden, wie zu ordnen, die Ausgabe auf eine Umgebungsvariable.

Irgendwelche Vorschläge, was ich falsch mache?

  • Es gibt mehrere Themen hier. Wollen Sie diese Variablen, die im das Bild, für den rest zu bauen, oder einfach nur, dass man den Befehl ausführen? Haben Sie kopieren Sie .env-Datei, die in das Bild? Und neben den 127 Fehler, hast du andere logs von dem build?
  • Hinzugefügt habe ich die Datei (anstatt kopieren). Ich versuche mit einer container-Breite von env-Variablen.
  • Nicht viel mehr in der Art der protokollierten Fehler.
  • Beachten Sie, dass <<< ist das nicht ein standard Umleitung Betreiber und einige leichtere Basis Bilder haben Schalen, die Umsetzung sehr wenig, das nicht im standard.
InformationsquelleAutor Ben Downey | 2018-08-01
Schreibe einen Kommentar