Przejdź do głównej zawartości

Linux - Docker Compose

Wymagania systemowe

Aby uruchomić aplikację Docker z wykorzystaniem Docker Compose, upewnij się że system na którym chcesz uruchomić aplikację obsługuje Docker'a oraz posiada zainstalowany Docker Engine. Szczegóły instalacji Docker Engine znajdziesz w oficjalnej dokumentacji.

wskazówka

Zaleca się uruchamianie aplikacji na systemach operacyjnych, które oficjalnie wspierają Docker. Jednak istnieje możliwość uruchomienia również na innych systemach, które posiadają nieoficjalne wsparcie.

notatka

Wszystkie nowe wersje Docker Engine powinny mieć domyślnie dostępną komendę docker compose. Jeśli jednak nie jest ona dostępna, możesz ją doinstalować zgodnie z dokumentacją.

Załadowanie obrazów

Najnowsze obrazy są dostępne na publicznym docker registry: downloads.traptech.pl

W celu pobrania obrazu z wykorzystaniem registry należy wykonać polecenie:

docker pull downloads.traptech.pl/trapinit:0.17.2

Po poprawnym wykonaniu polecenia, obraz o nazwie downloads.traptech.pl/trapinit:0.17.2 będzie dostępny na lokalnej maszynie.

informacja

Pamiętaj o podaniu poprawnej wersji, aktualną najnowszą wersję możesz sprawdzić na downloads.traptech.pl

Ładowanie obrazów offline

Jeśli maszyna na której chcemy uruchomić aplikację nie ma dostępu do internetu, możemy ręcznie ściągnąć spakowany obraz .tar.gz ze strony downloads.traptech.pl.

Następnie, po przekopiowaniu paczki w dowolny sposób na docelową maszynę (np. za pomocą scp), możemy załadować obraz następującymi komendami:

docker load -i TrapInit-docker-v0.17.2.tar.gz
docker image tag downloads.traptech.pl/trapinit:0.17.2 trapinit:0.17.2

Uruchomienie

Po poprawnym załadowaniu obrazów należy stworzyć plik docker-compose.yaml. Wymagane pola, podane są w poniższym przykładzie:

version: "3.7"

volumes:
trapinit-data:

services:
trapinit:
image: downloads.traptech.pl/trapinit:0.17.2
restart: "always"
ports:
- 80:80
- 443:443
volumes:
- trapinit-data:/data
environment:
InitialConfig__Admin__Login: "admin"
InitialConfig__Admin__Password: "<losowe hasło admina>"
JwtSettings__SecretKey: "<losowy ciąg znaków>"
PublicUrl: "https://my-domain.pl/"
HttpsSettings__Mode: "SelfSigned"

Należy pamiętać o odpowiednim uzupełnieniu JwtSettings__SecretKey, InitialConfig__Admin__Password i PublicUrl.

JwtSettings__SecretKey musi mieć odpowiednią długość (przynajmniej 32 znaki).

InitialConfig__Admin__Password jest potrzebny tylko do pierwszego logowania - po czym hasło administratora można zmienić w UI aplikacji, a tą wartość konfiguracyjną usunąć z docker-compose.yml.

PublicUrl musi określać adres, pod jakim będzie otwierania aplikacja. Ustawienie to określa w jaki sposób będą z aplikacją komunikowały się sensory. Może to być poprawny adres HTTP jeśli skonfigurowaliśmy DNS, lub adres IP (np. https://10.10.102.100/).

Powyższy przykładowy plik docker-compose.yml zawiera minimum opcji, aby aplikacja uruchomiła się poprawnie. Pełną listę opcji konfiguracyjnych znajdziemy tutaj

wskazówka

W celu lepszego zrozumienia powyższego przykładu, warto zapoznać się z opisem Docker Compose.

W celu uruchomienia instancji wykonujemy polecenie:

docker-compose up -d

Po tej operacji instancja powinna być gotowa do użytku.

Dodanie własnego certyfikatu

Przy domyślnej konfiguracji, aplikacja wygeneruje certyfikat self-signed aby możliwy był dostęp poprzez HTTPS. Możliwa jest konfiguracja aplikacji, aby korzystała z predefiniowanego certyfikatu do HTTPS.

Zmapuj ścieżkę do swojego certyfikatu, na przykład:

volumes:
- trapinit-data:/app/trapinit-data
- path/to/cert:/app/cert

Następnie zmień konfigurację w pliku docker-compose.yaml:

HttpsSettings__Mode: "CustomCertificate"
Kestrel__Certificates__Default__Path: "/app/cert/cert.pfx"
Kestrel__Certificates__Default__Password: "password"

Po zmianach, należy zatrzymać i uruchomić kontener na nowo.