docker erstellt Variablensubstitution

8

Es scheint, dass ich etwas über die Variablenersetzung auf der folgenden Seite nicht verstehe (meine Variable NUM registriert sich nicht): Ссылка

Siehe Screenshot unten. Führen Sie dies auf Mac OSX.

    
user3659451 22.12.2015, 01:17
quelle

3 Antworten

4

Was docker-compose variable Substitution betrifft, kann es hängt davon ab, wie NUM gesetzt wurde.
set NUM=5 würde es nur in der aktuellen Shell setzen, nicht für einen anderen Prozess.
Geben Sie Folgendes ein:

%Vor%     
VonC 22.12.2015 05:30
quelle
1

Es wird in den Dokumenten :

  

Sie können ein $$ (Doppel-Dollar-Zeichen) verwenden, wenn Ihre Konfiguration ein benötigt   wörtliches Dollarzeichen. Dies verhindert auch, dass Compose interpoliert   Wert, so ein $$ ermöglicht Ihnen, auf Umgebungsvariablen verweisen, die Sie   nicht von Compose verarbeitet werden soll.

%Vor%      

Wenn Sie ein einzelnes Dollarzeichen ($) vergessen und verwenden, interpretiert Compose das   Wert als Umgebungsvariable und warnt Sie:

     

Das VAR_NOT_INTERPOLATED_BY_COMPOSE ist nicht festgelegt. Ersetzen eines leeren   Zeichenfolge.

Dementsprechend sollte Zeile 03 Ihrer Kompositionsdatei lauten:

%Vor%     
Ayman Nedjmeddine 18.03.2017 11:52
quelle
1

Zusätzlich zu der $$ Lösung, die von @ ayman-nedjmeddine oben zur Verfügung gestellt wird, müssen Sie auch Folgendes tun, um Shell-Variablen verfügbar zu machen. Sie haben zwei Optionen:

Option 1

  • loggen Sie sich als root ein, setzen Sie Ihre Variable und führen Sie docker-compose
  • aus
  • root & gt; export NUM = 5
  • root & gt; docker-compose up

Option 2

  • Verwenden Sie sudo -E aus der Benutzer-Shell, -E propagiert die Benutzer-Shell env auf sudo,
  • bietet sudo Zugriff auf docker / docker-compose
  • Fügen Sie :SETENV: dem Befehl in der sudoer-Datei hinzu, um die Option -E in sudo
  • zu verwenden
  • zB:

    %Vor%
  • benutze schließlich

    %Vor%
sanat 09.07.2017 00:12
quelle

Tags und Links