Docker

Wdróż FoxIDs w Docker Desktop na maszynie deweloperskiej lub testowej.

To opis sposobu wykonania domyślnego wdrożenia i pierwszego logowania.

Instalacja FoxIDs jest jak wiadro: brak zależności zewnętrznych i łatwo osiągnąć bardzo wysoką dostępność przy niewielkim wysiłku. FoxIDs jest aktualizowany przez aktualizację dwóch obrazów Docker foxids/foxids i foxids/foxids-control na nową wersję. Nowe wydania FoxIDs są wstecznie kompatybilne przed aktualizacją sprawdź informacje o wydaniu.

Wymagania wstępne:

  • Masz zainstalowany Docker Desktop.
  • Masz podstawową wiedzę o Docker.

Na końcu tego opisu znajduje się lista przydatnych poleceń.

To wdrożenie obejmuje:

  • Dwie witryny: jedna dla FoxIDs i jedna dla FoxIDs Control (Client i API) w dwóch obrazach Docker foxids/foxids i foxids/foxids-control lub zbudowane z kodu przy użyciu plików Dockerfile.
  • Dwie witryny są wystawione na dwóch różnych portach.
  • MongoDB to baza NoSQL zawierająca wszystkie dane, w tym tenantów, środowiska i użytkowników. Wdrażana z oficjalnego obrazu MongoDB.
  • Redis cache przechowuje sekwencje (np. logowanie i wylogowanie), cache danych dla poprawy wydajności oraz liczniki chroniące przed atakami. Wdrażany z oficjalnego obrazu Redis.
  • Logi są zapisywane do stdout, skąd mogą być zbierane przez Docker.

Opcjonalnie użyj PostgreSql zamiast MongoDB i opcjonalnie zrezygnuj z Redis oraz zapisuj dane cache w bazie (MongoDB lub PostgreSql). Bez Redis ustaw None jako data cache.

Wdrożenie

Wdrożenie jest wykonywane w opisanej kolejności.

Przygotowanie

Sklonuj repozytorium git lub pobierz jako ZIP. Pliki konfiguracyjne YAML dla Dockera znajdują się w folderze ./Docker.
Otwórz konsolę i przejdź do folderu ./Docker.

Wolumen

Potrzebujesz wolumenu dla MongoDB o nazwie foxids-data, gdzie będą zapisywane dane.

Utwórz volume dla MongoDB na hoście Windows, np. w folderze C:\data\foxids-data. Ważne: utwórz foldery przed uruchomieniem polecenia.

docker volume create --driver local --opt type=none --opt device=C:\data\foxids-data --opt o=bind foxids-data

LUB utwórz volume dla MongoDB zarządzany przez Docker.

docker volume create foxids-data

Wdrożenie kontenerów

Dwie witryny FoxIDs są skonfigurowane tak, aby korzystać z obrazów z Docker Hub lub obrazów zbudowanych z kodu przy użyciu plików Dockerfile. Opcjonalnie skonfigurowane do użycia tylko HTTP albo HTTP/HTTPS z certyfikatem deweloperskim.
Oficjalne obrazy MongoDB i Redis są pobierane z Docker Hub.

Dostawca e-mail
Możesz opcjonalnie skonfigurować globalnego dostawcę e-maili lub później skonfigurować dostawców e-maili dla każdego środowiska. FoxIDs obsługuje wysyłanie e-maili przez SendGrid i SMTP.

Globalny dostawca e-maili jest konfigurowany w pliku docker-compose-image.yaml lub docker-compose-project.yaml w usłudze foxids w sekcji environment:.
Poniższy przykład pokazuje konfigurację Outlook / Microsoft 365 przez SMTP:

- name: "Settings__Smtp__FromEmail"
    value: "my@email-address.org"
- name: "Settings__Smtp__FromName" # Opcjonalna nazwa nadawcy powiązana z adresem e-mail
    value: "e.g, my company name"
- name: "Settings__Smtp__Host"
    value: "smtp.office365.com"
- name: "Settings__Smtp__Port"
    value: "587"
- name: "Settings__Smtp__Username"
    value: "my@email-address.com"
- name: "Settings__Smtp__Password"
    value: "xxxxxxx"

Wdrożenie
Utwórz wdrożenie, wybierając jeden z trzech sposobów:

  1. Wszystko na obrazach z Docker Hub i z HTTP
docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml up -d
  1. Częściowo na obrazach zbudowanych z kodu przy użyciu plików Dockerfile i z HTTP
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml up -d
  1. Częściowo na obrazach zbudowanych z kodu przy użyciu plików Dockerfile i z HTTP/HTTPS wymaga certyfikatu deweloperskiego.
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml up -d

Pierwsze logowanie

Otwórz witrynę FoxIDs Control (http://localhost:8801 lub https://localhost:8401) w przeglądarce. Powinna przekierować do witryny FoxIDs, gdzie zalogujesz się domyślnym użytkownikiem admin admin@foxids.com i hasłem FirstAccess! (podczas pierwszego logowania musisz zmienić hasło).
Następnie zostaniesz przekierowany z powrotem do witryny FoxIDs Control w tenancie master. Możesz dodać więcej adminów w tenancie master.

Następnie kliknij tenant main i uwierzytelnij się ponownie tym samym domyślnym użytkownikiem admin admin@foxids.com i hasłem FirstAccess! (ponownie wymagane jest ustawienie nowego hasła).

Domyślny użytkownik admin i hasło są takie same dla tenanta master i tenanta main, ale to dwaj różni użytkownicy.

Jesteś teraz zalogowany w tenancie main i możesz rozpocząć konfigurację aplikacji i metod uwierzytelniania.

Przydatne polecenia

To lista poleceń, które mogą być przydatne podczas wdrożenia do podglądu szczegółów i wprowadzania zmian.

Usuń wdrożenie

docker-compose -f docker-compose-image.yaml -f docker-compose.development-http.yaml down
# lub
docker-compose -f docker-compose-project.yaml -f docker-compose.development-http.yaml down
# lub
docker-compose -f docker-compose-project.yaml -f docker-compose.development-https.yaml down

Zbuduj obraz z pliku Dockerfile

docker build -f ./src/foxids/Dockerfile . -t foxids:x.x.x    # x.x.x to wersja
# lub
docker build -f ./src/foxids.control/Dockerfile . -t foxids-control:x.x.x    # x.x.x to wersja

Zatrzymaj kontener

docker stop xxx

Usuń kontener

docker rm xxx

Usuń obraz

docker rmi xxx

Lista wolumenów

docker volume ls

Usuń wolumen

docker volume rm xxx

Usuń wszystkie nieużywane wolumeny

docker volume prune

Pokaż logi w kontenerze

Docker logs xxx

Twoja prywatność

Używamy plików cookie, aby poprawić korzystanie z naszych stron internetowych. Kliknij przycisk „Akceptuj wszystkie pliki cookie”, aby wyrazić zgodę na ich użycie. Aby zrezygnować z nieistotnych plików cookie, kliknij „Tylko niezbędne pliki cookie”.

Odwiedź naszą politykę prywatności, aby dowiedzieć się więcej