Docker: Zaawansowane zastosowania kontekstów
Jak używać kontekstów Docker w swoich skryptach
Witamy w dokumentacji Stackhero
Stackhero oferuje gotową do użycia platformę Docker cloud CaaS (Containers as a Service), zaprojektowaną z myślą o szybkich i niezawodnych wdrożeniach kontenerów:
- Wdrażaj do produkcji za pomocą pojedynczego polecenia
docker-compose up. Nie jest wymagana żadna dodatkowa konfiguracja: po prostu uruchom swoje kontenery.- Wybierz własną nazwę domeny, automatycznie zabezpieczoną przez HTTPS (na przykład: https://api.twoja-firma.com, https://www.twoja-firma.com lub https://backoffice.twoja-firma.com).
- Korzystaj z wysokiej wydajności i solidnego poziomu bezpieczeństwa na prywatnej, dedykowanej infrastrukturze.
- Aktualizuj środowisko jednym kliknięciem, co zapewnia prostą i bezproblemową konserwację.
Twoje kontenery mogą działać w środowisku produkcyjnym już w około pięć minut. Stackhero zarządza infrastrukturą, aktualizacjami i bezpieczeństwem za Ciebie, dzięki czemu możesz skupić się na dostarczaniu swoich aplikacji. Dowiedz się więcej o hostingu Docker CaaS w chmurze.
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.comna domenę swojej instancji Docker (<XXXXXX>.stackhero-network.com).
Zarządzanie kontekstami Docker w skryptach bash
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.
Zewnętrzna konfiguracja za pomocą pliku .env
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
Wykorzystanie kontekstów Docker w Makefile
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 liniadocker run [...]zaczyna się od znaku TAB, a nie od spacji.
Wykorzystanie plików .env w Makefile
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 liniadocker run [...]zaczyna się od znaku TAB, a nie od spacji.