Docker: Zaawansowane zastosowania kontekstów

Jak używać kontekstów Docker w swoich skryptach

👋 Witamy w dokumentacji Stackhero!

Stackhero oferuje gotowe do użycia rozwiązanie Docker cloud CaaS (Containers as a Service), które zapewnia wiele korzyści, w tym:

  • Łatwe wdrażanie kontenerów do produkcji za pomocą prostego docker-compose up.
  • Dostosowywana nazwa domeny zabezpieczona HTTPS (na przykład, https://api.twoja-firma.com, https://www.twoja-firma.com, https://backoffice.twoja-firma.com).
  • Optymalna wydajność i solidne zabezpieczenia dzięki prywatnej i dedykowanej VM.
  • Bezproblemowe aktualizacje za pomocą jednego kliknięcia.

Oszczędzaj czas i upraszczaj swoje życie: wystarczy 5 minut, aby wypróbować rozwiązanie Docker CaaS cloud hosting Stackhero i wdrożyć swoje kontenery do produkcji!

Praca z poleceniami Docker context use jest świetna do ręcznego wykonywania poleceń. Jednak przy użyciu skryptów istnieją lepsze alternatywne metody, które mogą uprościć proces. Zamiast bezpośrednio wywoływać polecenie, można ustawić żądany kontekst za pomocą zmiennej środowiskowej DOCKER_CONTEXT. To podejście doskonale integruje się z przepływami pracy skryptów i utrzymuje przejrzystość konfiguracji.

W podanych przykładach zamień <XXXXXX>.stackhero-network.com na domenę swojej instancji Docker (<XXXXXX>.stackhero-network.com).

Oto przykład, jak ustawić kontekst Docker w skrypcie bash:

#!/bin/bash
set -e

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

echo "IP z Docker dla instancji Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me

Ustawiając zmienną środowiskową DOCKER_CONTEXT, można wygodnie zarządzać aktywnym kontekstem bezpośrednio w swoich skryptach.

Aby uniknąć twardego kodowania DOCKER_CONTEXT, można załadować jego wartość z pliku .env. Ta metoda utrzymuje porządek w ustawieniach środowiska i ułatwia dostosowania:

#!/bin/bash
set -e

source .env

echo "IP z Docker dla instancji Stackhero:"
docker run --rm alpine wget -q -O - ifconfig.me

Utwórz plik .env z następującą zawartością:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

Można również ustawić zmienną DOCKER_CONTEXT w Makefile. Oto przykład eksportowania zmiennej i uruchamiania kontenera Docker:

# Makefile
export DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Po utworzeniu Makefile, wywołaj polecenie używając:

make getIp

Jeśli napotkasz błąd Makefile: *** missing separator. Stop., upewnij się, że linia docker run [...] zaczyna się od znaku TAB, a nie od spacji.

Można dodatkowo uprościć konfigurację, włączając plik .env w Makefile. To podejście zapewnia scentralizowane zarządzanie ustawieniami środowiska:

# Makefile
include .env
export

getIp:
	docker run --rm alpine wget -q -O - ifconfig.me

Utwórz plik .env z tą zawartością:

DOCKER_CONTEXT=<XXXXXX>.stackhero-network.com

Następnie wykonaj polecenie:

make getIp

Jeśli napotkasz błąd Makefile: *** missing separator. Stop., sprawdź, czy linia docker run [...] zaczyna się od znaku TAB, a nie od spacji.