2016-08-10 3 views
0

Stellen Sie sich vor ich eine Anwendung (für die ich den Quellcode nicht ändern können selbst) in einem Behälter, der fürWie exportiert Umgebungsvariable in Docker umbenennen

  • DB_USR
  • DB_HOST
  • wartet DB_PASSWD
  • DB_NAME

als Umwelt Vari in der Lage, eine Verbindung zu einer MySQL-Datenbank zu machen Also verbinde ich diesen Container mit einem MySQL-Container

aber die Umgebungsvariablen Namen aus dem MySQL-Container in meine Anwendung Container exportiert nicht übereinstimmen.

Im Moment ist die einzige Möglichkeit, die ich gefunden habe, dies zu tun, indem Sie die Binärdatei der Anwendung in ein Bash-Skript mit einem Export von Umgebungsvariablen umwandeln, um die Übereinstimmung zu erreichen.

Gibt es einen Standard/Besser, der von Docker bereitgestellt wird, um diese Zuordnung durchzuführen?

Antwort

0

Haben Sie Anwendung in Docker mit dem Befehl auszuführen versucht:

docker run -d \ 
    -e DB_HOST=${MY_OWN_ENV_HOSTNAME} \ 
    -e DB_USR=${MY_OWN_ENV_USERNAME} \ 
    -e DB_PASSWD=${MY_OWN_ENV_PASSWORD} \ 
    -e DB_NAME=${MY_OWN_ENV_DBNAME} \ 
    your-application-container 

und natürlich die zusätzlichen Parameter erforderlich laufen.

Alternativ können Sie Datei env.txt mit Umgebungsvariablen erstellen:

# Definitions of environment variables 
DB_HOST=${MY_OWN_ENV_HOSTNAME} 
DB_USR=${MY_OWN_ENV_USERNAME} 
DB_PASSWD=${MY_OWN_ENV_PASSWORD} 
DB_NAME=${MY_OWN_ENV_DBNAME} 

und dann mit dem Befehl

docker run -d --env-file ./env.txt your-application-container 
die Anwendung in einem Docker laufen
Verwandte Themen