Jak postawić Docker na Saplo (własny obraz albo docker-compose)

Docker to najbardziej elastyczna opcja w katalogu Saplo - dajesz własny Dockerfile albo docker-compose.yml, a Saplo buduje obraz i go uruchamia. Jeśli aplikacji nie ma jako gotowej receptury, a ma oficjalny obraz Docker, prawdopodobnie postawisz ją właśnie tutaj.

Grzegorz Kalmus· ·55 wyświetleń

Docker to nie konkretny stack technologiczny, tylko środowisko uruchomieniowe - dajesz własny Dockerfile albo docker-compose.yml, a Saplo buduje obraz i go uruchamia. To najbardziej elastyczna opcja w całym katalogu: jeśli aplikacji nie ma jako gotowej receptury (Ghost, n8n, WordPress i inne), a ma oficjalny obraz Docker albo plik compose, prawdopodobnie postawisz ją właśnie tutaj, bez czekania, aż Saplo doda dedykowaną recepturę.

Dla kogo jest Docker na Saplo

Zanim zaczniesz instalację, sprawdź, czy to dobry wybór dla Twojego projektu:

  • aplikacja z gotowym obrazem Dockera - narzędzie, które chcesz uruchomić, publikuje oficjalny obraz na Docker Hub albo GHCR,
  • kilka usług w jednym pliku docker-compose - aplikacja plus baza danych, cache albo worker w jednym docker-compose.yml,
  • narzędzie, którego nie ma w katalogu jako osobna receptura - Docker daje dostęp do dowolnego oprogramowania z obrazem, bez czekania na dedykowany przepis,
  • masz projekt z własnym Dockerfile i chcesz pełnej kontroli nad środowiskiem uruchomieniowym - zależności, wersje bibliotek systemowych, wszystko definiujesz sam.

Jeśli Twój projekt to Django z gotowym Dockerfile, rozważ też dedykowany stack Django - Saplo zbuduje go natywnie (gunicorn, nginx dla plików statycznych) bez konieczności pisania własnego obrazu.

Wymagania

Żeby postawić Docker na Saplo, potrzebujesz:

  • Boxa w planie L lub wyższym - budowanie obrazu potrzebuje więcej zasobów niż zwykły statyczny build, a LXC musi mieć uruchomiony Docker daemon (nesting=1),
  • minimum 512 MB wolnego RAM i 3 GB miejsca na dysku pod sam starter, cięższe obrazy i buildy wymagają więcej,
  • domeny albo subdomeny *.saploapp.pl w cenie każdego planu,
  • repozytorium Git, jeśli chcesz korzystać z automatycznego wdrażania (opcjonalne na start, aplikację możesz też wgrać archiwum .zip przez panel).

Instalacja krok po kroku

  1. W panelu Saplo wejdź w Katalog aplikacji i wybierz Docker (kategoria "Aplikacje").
  2. Wskaż Box w planie L lub wyższym oraz nazwę aplikacji - z niej powstaje domyślna subdomena.
  3. Zatwierdź instalację. Silnik instaluje Docker CE oraz plugin docker compose w Twoim Boxie, jeśli jeszcze ich nie ma.
  4. Powstaje starter docker-compose.yml z obrazem nginxdemos/hello zmapowanym na port aplikacji, uruchomiony z opcją restart: unless-stopped - żeby od razu było co zobaczyć pod domeną, zanim wdrożysz własny projekt.
  5. Po zakończeniu instalacji domena z kroku 2 pokazuje działający kontener startowy - od tego momentu zastępujesz go własnym obrazem albo plikiem compose.

Wdrożenie własnego kodu przez Git

  1. W szczegółach aplikacji znajdź sekcję Git / CI-CD i kliknij "Połącz GitHub", potwierdź instalację aplikacji "Saplo Deploy" i wskaż repozytorium z projektem.
  2. W repozytorium umieść Dockerfile w korzeniu projektu albo docker-compose.yml, jeśli aplikacja składa się z kilku usług - Saplo wykrywa, który wariant jest w repo, i buduje odpowiednio.
  3. W pliku saplo.yaml wskaż port, na którym nasłuchuje Twoja aplikacja, polem expose - nginx skieruje na niego ruch z 80/443.
  4. Zacommituj i wypchnij zmiany na gałąź produkcyjną (domyślnie main). Każdy kolejny git push buduje nowy obraz i podmienia kontener.
  5. Obraz budowany jest bezpośrednio w Twoim Boxie - cięższe buildy (duże zależności, kompilacja natywna) wymagają wyższego planu.

Przykład minimalnego pliku saplo.yaml dla Dockera:

name: moj-projekt
stack: docker
expose: 8080

Docker na Saplo kontra alternatywy

Własny VPS z Dockerem Railway / Render (deploy z Dockerfile) Docker na Saplo
Konfiguracja Docker daemon robisz sam w pełni zarządzane preinstalowane, silnik dogrywa brakujące elementy
Wdrożenia z Gita trzeba złożyć samemu (CI/CD, webhooki) tak, natywnie tak, git push na gałąź produkcyjną
Rozliczenie stały koszt serwera zużycie zasobów, rośnie z ruchem stały koszt Boxa
Kilka usług w jednym projekcie (compose) konfigurujesz sam zwykle ograniczone do jednego kontenera docker-compose.yml wykrywany automatycznie

Najczęstsze pytania

Dockerfile czy docker-compose - co wybrać? Oba działają. Dockerfile wystarczy dla pojedynczej usługi, docker-compose wybierz, gdy aplikacja potrzebuje kilku kontenerów obok siebie, np. usługi plus Redis.

Czy mogę mieć kilka kontenerów w jednym pliku compose? Tak, cały plik docker-compose.yml jest uruchamiany razem, z zachowaniem sieci między usługami.

Czy obraz buduje się na moim Boxie, czy gdzieś zewnętrznie? Na Twoim Boxie - stąd wyższe wymagania planu przy cięższych buildach niż przy prostych statycznych stronach.

Co z danymi, które mają przetrwać restart kontenera? Wolumeny działają jak w zwykłym Dockerze. Pamiętaj o włączeniu backupu w ustawieniach aplikacji, jeśli dane mają być chronione.

Czy dostanę SSL i własną domenę? Tak, certyfikat SSL jest automatyczny, a domenę albo subdomenę *.saploapp.pl masz w cenie każdego planu.

Docker na Saplo stawiasz od zera do działającej domeny w kilka minut, a każdy kolejny git push buduje nowy obraz i podmienia kontener bez Twojego udziału. Jeśli szukasz konkretnego narzędzia z obrazem Docker, którego nie ma jeszcze jako gotowej receptury w katalogu, to najszybsza droga, żeby je uruchomić.