Software Development

Docker: kontener, zmienne środowiskowe

Marzec 3, 2016 0
Podziel się:

Tworząc kontener możemy określić dostępne w nim zmienne środowiskowe. Ustawianie zmiennych środowiskowych jest istotnym elementem konfiguracji wielu kontenerów. W tym wpisie zostanie przedstawiony sposób konfiguracji kontenera postgres za pomocą zmiennych środowiskowych.

Ten wpis jest częścią serii wpisów o Dockerze. Jeżeli jakieś pojęcie jest używane bez wyjaśnienia to prawdopodobnie zostało wprowadzone w jednym z wcześniejszych wpisów.

W poprzednich częściach serii o Dockerze kilkukrotnie korzystaliśmy z kontenera serwera bazy danych postgres, zawsze logując się do niej za pomocą domyślnego użytkownika. Moglibyśmy stworzyć własnego użytkownika, jego bazę danych i nadać mu odpowiednie uprawnienia za pomocą kilku poleceń wywołanych na kontenerze, ale można to zrobić dużo prościej za pomocą zmiennych środowiskowych.

Dostępne zmienne środowiskowe są opisane na stronie obrazu postgres. Konfigurowanie kontenerów za pomocą zmiennych środowiskowych jest często stosowana praktyką i nie ogranicza się tylko do kontenerów obrazu postgres. Do ustawiania zmiennych środowiskowych w kontenerze służy opcja -e w poleceniu docker run.

docker run -e [nazwa]:[wartość] [nazwa obrazu]

Uruchommy kontener obrazu postgres, który będzie tworzył użytkownika o zadanych: nazwie, haśle i nazwie bazy danych. Wykorzystamy do tego następujące zmienne środowiskowe:

  • POSTGRES_USER,
  • POSTGRES_PASSWORD,
  • POSTGRES_DB.
docker run -d -p 6543:5432 -e POSTGRES_USER=docker_user -e POSTGRES_PASSWORD=docker_pass -e POSTGRES_DB=docker_db postgres

Powinniśmy być w stanie otworzyć interaktywny terminal postgresa za pomocą polecenia:

psql -h localhost -p 6543 -d docker_db -U docker_user --password

lub jeżeli nie chcemy podawać hasła osobno:

PGPASSWORD="docker_pass" psql -h localhost -p 6543 -d docker_db -U docker_user

Proces przetwarzania zmiennych środowiskowych podczas tworzenia kontenera można prześledzić czytając skrypt entrypoint.sh wykorzystywany przez obraz postgres. Jest to jednak temat związany z budowaniem własnych obrazów i powinien zostać omówiony w osobnym wpisie.

Spis wpisów w serii

3.2 / 5
Tagi: ,
Piotr Wierzgała
Autor: Piotr Wierzgała
Programista Python zainteresowany tematyką uczenia maszynowego.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz