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.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.