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