Docker - problem ze zmiennymi

0

Cześć.
Bawię się kontenerami.
Przy budowie prostego obrazu dodałem do Dockerfile:

ENV zmienna = 20

Gdy zbuduję obraz i odpalę z niego kontener dzieją się dziwne rzeczy:

  1. Gdy wejdę do konsoli kontenera i wpiszę echo $zmienna to zwróci poprawną wartość
  2. Ale gdy użyję:
docker exec 123123123 echo $zmienna

na tym samym (uruchomionym) kontenerze to nic mi nie zwraca.
Komenda działa poprawnie gdy zamiast $zmienna wpiszę jakiś zwykły tekst.

Co jest przyczyną takiego zachowania?

4

Po prostu bierze Ci zmienną z hosta, a nie kontenera.

2

Nie chodzi o to czy jest brana z kontenera czy z hosta, tylko o to w jaki sposób jest ewoluowanie polecenie basha.

Jeśli w sesji w której uruchamiasz polecenie "docker exec cont echo $zmienna" nie ma zmiennej zmienna, to to polecenie zostanie zinterpretowane dokładnie tak jak "docker exec cont echo ", i to jest to co zobaczysz wyprintowane, czyli nic.

Jeśli chcesz żeby zmienna nie była ewoluowana przy submitowaniu polecenia użyj:

docker exec cont bash -c 'echo $zmienna' 

1 użytkowników online, w tym zalogowanych: 0, gości: 1