2015-12-22 16 views

Odpowiedz

4

chodzi docker-compose variable substitution, może to zależeć od tego, jak NUM został ustawiony.
set NUM=5 ustawi to tylko w bieżącej powłoce, a nie w innym procesie.
Upewnij się, aby wpisać:

export NUM=5 
+0

Pytanie dotyczy mechanizmu zmiennego zastępowania komponentu, który wykorzystuje zmienne z hosta, a nie z kontenera. –

+0

@AdrianMouat Oh ... masz na myśli https://github.com/docker/compose/blob/ea8cc1c3dc47c9ed3bff56c5a8d99175b57af650/docs/compose-file.md#variable-substitution – VonC

+0

@AdrianMouat Odpowiednio przepisałem odpowiedź. – VonC

1

To jest wymienione w docs:

Można użyć $$ (podwójny znak dolara), gdy konfiguracja potrzebuje dosłownego dolara. Zapobiega to również interpolacji Kompilacji wartości , więc $$ pozwala na odwołanie się do zmiennych środowiskowych, które nie są przetwarzane przez Compose.

web: 
    build: . 
    command: "$$VAR_NOT_INTERPOLATED_BY_COMPOSE" 

Pominięcie i używać jednego znak dolara ($), Compose interpretuje wartość jako zmiennej środowiskowej i będzie cię ostrzec:

VAR_NOT_INTERPOLATED_BY_COMPOSE nie jest ustawiony. Zastępowanie pustego ciągu .

Według że linia 03 z pliku redagowania powinno być:

command: echo $$NUM 
1

Oprócz $$ rozwiązanie dostarczone przez @ Ayman-nedjmeddine powyżej trzeba także nie po, aby zmienne powłoki dostępny w Compose masz dwie opcje

Opcja 1

  • zalogować się jako root, ustawić zmienną i wykonać doker-komponować
  • root> NUM eksport = 5
  • root> dokowanym-skomponować

Wariant 2

  • zastosowanie sudo -E z powłoki użytkownika -E będzie propagować powłoki użytkownika env do sudo
  • zapewniamy sudo dostęp do dockera/docker-compose
  • dodać :SETENV: do polecenia w pliku sudoer do użycia -E opcja w sudo
  • np

    sudo visudo -f /etc/sudoers.d/docker-compose 
        ALL ALL=(ALL:ALL) NOPASSWD:SETENV: /usr/local/bin/docker-compose 
    sudo visudo -f /etc/sudoers.d/docker 
        ALL ALL=(ALL:ALL) NOPASSWD:SETENV: /usr/bin/docker 
    
  • wreszcie korzystać

    user1>export NUM=5 
    user1>sudo -E docker-compose up 
    
Powiązane problemy