Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [docker] zmienna srodowiskowa przekazana do .yml
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 561
Pomógł: 6315
Dołączył: 27.12.2004




Hej,
idzie w komendzie
docker-compose up -d
dodac jeszcze zmienna, ktora zostanie przekazana do budowanego pliku docker-compose.yml ?
Przyklad o co mi chodzi:
docker-compose up -d --env:usr=dev

a w pliku docker-compose.yml mam bede mial np. taki kod
extra_hosts:
- "$usr.jakasstrona.pl:162.242.195.82"

W wyniku czego /etc/hosts kontenera pojawi mi sie wpis
162.242.195.82 dev.jakasstrona.pl

edit: zmierzam do tego, ze chce przygotowac uniwersalne srodowisko dla naszego zepolu. Niestety kazdy z nas odpala jedna aplikacje pod wlasnymi adresami.
Ja pod:
nospor.blabla.pl
Kumpel pod:
nickkumpla.blabla.pl
itd

Chodzi o to, by tylko w komendzie docker-compose up -d podac jeszcze nasza nazwe i powstanie odpowiedni wpis w kontenerze.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
by_ikar
post
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Można w docker-compose.yml wykorzystać zmienne zapisane w sesji lub zapisane w .bashrc. Od wersji 1.5 w compose można wykorzystać zmienne bashowe: https://github.com/docker/compose/blob/1290...le-substitution

Jeżeli już tą zmienną usr masz zapisaną, to wystarczy że dodasz do swojej konfiguracji:

Kod
extra_hosts:
  - "$DOMAIN_USR.jakasstrona.pl:162.242.195.82"


Jeżeli nie, to musisz zrobić zarówno export (żeby wykorzystać w tej samej sesji terminala) jak i dorzucić do .bashrc tą zmienną, co by pomiędzy restartami maszyny mieć zapisane te dane. U mnie w firmie każde repo ma też install.sh w którym sobie wrzucamy takie rzeczy przy pierwszym odpaleniu kontenera. Możesz takie rzeczy wrzucić sobie w taki sposób:

Kod
usr="nospor"
sed -i '/DOMAIN_USR/d' ~/.bashrc
( echo "export DOMAIN_USR=\"$usr\""; echo ) >> ~/.bashrc
export DOMAIN_USR="$usr"


sed służy tutaj za wykasowanie tej linijki z bashrc jeżeli taka już istnieje, co by nie dorzucać ciągle tego samego przez pomyłkę. Ewentualnie jak nie chcecie sobie takich rzeczy eksportować możecie zrobić to tak:

Kod
DOMAIN_USR=nospor docker-compose up -d


Wtedy po prostu będziesz miał odczytaną tą zmienną jednorazowo, ale każdy restart będzie wiązać się z właśnie użyciem tej zmiennej przed samą komendą. No ale masz kilka wariantów (IMG:style_emoticons/default/wink.gif)

Ten post edytował by_ikar 7.02.2016, 12:18:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.12.2025 - 16:22