Aplikacja z pliku Docker Compose
Jak utworzyć aplikację w kontenerach z pliku Docker Compose — plan, repliki, port publiczny, health-check, load balancer i własna domena.
Aplikacja to usługa zarządzana: wklejasz definicję Docker Compose, a panel uruchamia ją na jednej lub kilku replikach. Przy dwóch i więcej replikach ruch rozkłada load balancer z health-checkiem i HTTPS. Nie konfigurujesz Dockera ani serwerów — nie masz też do nich dostępu SSH.
Uwaga: Aplikacja powinna być bezstanowa. Bazę danych trzymaj w zarządzanej bazie danych, a pliki użytkowników w magazynie S3. Dane w wolumenach Dockera są tylko na jednej replice.
Tworzenie aplikacji
- Zaloguj się do https://cloud.hostava.pl, otwórz Aplikacje i kliknij Utwórz aplikację.
- W sekcji Lokalizacja wybierz centrum danych. Repliki nie mają publicznego IP i wychodzą do internetu przez NAT.
- W sekcji Plan repliki wybierz zasoby (vCPU, RAM, dysk) jednej repliki. Każda replika dostaje ten sam plan.
- W sekcji Typ aplikacji wybierz:
- Aplikacja webowa — odpowiada na ruch HTTP, ma port, domenę z SSL i (przy 2+ replikach) load balancer,
- Worker — procesy w tle (kolejki, zadania cykliczne) bez ruchu z internetu, bez portu, domeny i load balancera.
- W sekcji Repliki ustaw liczbę replik (domyślnie 2, maksymalnie 10). Repliki trafiają na różne hosty.
- 1 replika — aplikacja dostaje publiczny adres IP, bez load balancera. Tej liczby nie zmienisz później.
- 2 i więcej — repliki działają za wspólnym load balancerem. Możesz włączyć Load balancer w HA (druga instancja LB na innym hoście, płatna osobno).
- Opcjonalnie wpisz Własną domenę (np.
app.twojafirma.pl). Domenę dodasz też później. - W sekcji Aplikacja wklej Docker Compose i uzupełnij:
- Usługa publiczna — nazwa usługi z compose, która przyjmuje ruch (np.
web), - Port publiczny — port, na którym nasłuchuje ta usługa (np.
8080), - Ścieżka health-check — adres sprawdzany przed przełączeniem ruchu (np.
/health; zwykle wystarczy/), - Zmienne środowiskowe (.env) — w formacie
KLUCZ=wartosc, przechowywane zaszyfrowane, - Dodatkowe porty (opcjonalnie) — po przecinku; źródło ograniczysz zapisem
port@IPlubport@CIDR, np.[email protected].
- Usługa publiczna — nazwa usługi z compose, która przyjmuje ruch (np.
- Opcjonalnie dodaj Pliki (np. certyfikat CA bazy). Trafią do katalogu
./filesobok compose przed pierwszym startem. Limit to 1 MB na plik i 5 MB łącznie. - Jeśli obraz jest w prywatnym rejestrze, wypełnij Prywatny rejestr: adres (puste = Docker Hub), użytkownika i token.
- W Szczegółach podaj nazwę i wybierz projekt — repliki i load balancer trafią do jego sieci prywatnej.
- Kliknij Utwórz aplikację (lub Utwórz workera). Tworzenie trwa zwykle kilka minut.
Uwaga: Zaraz po utworzeniu panel pokaże token deployu. Zapisz go od razu — wyświetlamy go tylko raz. Przyda się do wdrożeń z CI.
Przykładowy compose
services:
web:
image: ghcr.io/twoja-firma/app:latest
restart: always
ports:
- "8080:8080"
env_file: .env
volumes:
- ./files/certs/ca.pem:/certs/ca.pem:ro
Compose musi mieć sekcję services: na najwyższym poziomie. Nie wystawiaj portu usługi publicznej tylko na 127.0.0.1 (np. "127.0.0.1:8080:8080") — load balancer nie połączy się wtedy z repliką. Panel odrzuci taką konfigurację.
Domena i HTTPS
Po utworzeniu otwórz zakładkę Przegląd i sekcję Domena i HTTPS:
- 2+ repliki — skieruj domenę rekordem CNAME na adres load balancera pokazany w panelu, poczekaj na DNS i kliknij Wydaj certyfikat SSL. Certyfikat Let's Encrypt odnawia się automatycznie. Bez domeny aplikacja działa pod adresem load balancera, już z HTTPS.
- 1 replika — skieruj domenę rekordem A na publiczny adres IP repliki, odczekaj ok. 2 minuty i kliknij Wydaj certyfikat SSL. Bez domeny aplikacja jest dostępna pod adresem IP, bez TLS.
Zmiany konfiguracji
Compose, .env, pliki, porty, health-check i rejestr zmienisz w zakładce Konfiguracja. Zapis nie wdraża zmian — kliknij potem Wdróż ponownie w Przeglądzie. Wdrożenie jest kroczące: replika po replice, każda dopiero po przejściu health-checku.
Wskazówka: Gdy wdrożenie się nie uda, w panelu pojawi się komunikat z przyciskiem Pokaż przyczynę (logi deployu). Logi działającej aplikacji znajdziesz w zakładce Logi, a stan kontenerów w Metrykach.
W zakładce Kopie panel trzyma ostatnie 30 wersji konfiguracji (zapisywane przy każdej zmianie i przed wdrożeniem). Możesz pobrać kopię jako plik i odtworzyć z niej aplikację przyciskiem Wczytaj z kopii… przy tworzeniu nowej. Kopia nie obejmuje danych z wolumenów.
Powiązane: Wdrożenia z CI, Polecenia w aplikacji, Repliki i plan.