Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator Docker Compose produkcyjny

Aplikacja, PostgreSQL, Redis i Nginx z bezpiecznymi zależnościami

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Opcje

Generator wstawi odwołanie do zmiennej środowiskowej, nigdy jej wartość.

Usługi: 4

Zapisz wynik jako compose.yaml. Ustaw wskazaną zmienną hasła, przygotuj nginx.conf, dodaj healthcheck własnej aplikacji i sprawdź wynik przez docker compose config.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Generator Docker Compose — bezpieczna baza produkcyjnego stosu

Generator produkcyjnego Docker Compose składa plik compose.yaml dla aplikacji, PostgreSQL, Redis i Nginx. Wynik używa wersjonowanych obrazów, trwałych wolumenów, prywatnej sieci, healthchecków oraz zależności czekających na gotowość bazy i cache. Hasło nie trafia do YAML — plik wymaga ustawienia wskazanej zmiennej środowiskowej.

Co znajduje się w wygenerowanym stosie

UsługaRolaZabezpieczenia i kontrola gotowości
appwłasny obraz aplikacjibrak publicznego portu, tylko expose; oczekiwanie na zdrowe db i redis
dbPostgreSQLhasło przez wymaganą zmienną, pg_isready, wolumen danych, brak publikacji portu
rediscache lub kolejkatrwałość AOF, kontrola redis-cli ping, brak portu hosta
nginxwejście HTTP i reverse proxywersjonowany obraz, konfiguracja tylko do odczytu, test nginx -t, zależność od aplikacji

Generator nie dodaje przestarzałego klucza version; współczesny Docker Compose korzysta z Compose Specification. Pole name nadaje projektowi stabilną nazwę, więc kontenery, sieć i wolumeny nie zmieniają prefiksu zależnie od nazwy katalogu.

Wersje obrazów zamiast latest

Tag latest nie mówi, jaki kod uruchomi się po następnym pobraniu obrazu. Dlatego formularz wymaga tagu albo digestu zarówno dla aplikacji, jak i PostgreSQL. Domyślnie baza używa gałęzi postgres:17-alpine, Redis redis:7.4-alpine, a Nginx nginx:1.28-alpine. W krytycznym wdrożeniu warto pójść dalej i przypiąć pełny tag poprawki lub digest sha256, a aktualizacje wykonywać kontrolowanym procesem.

Obraz aplikacji jest projektem użytkownika, więc generator nie może znać właściwego numeru. Domyślne registry.example.com/myapp:1.0.0 jest bezpiecznym przykładem, który trzeba zastąpić adresem obrazu z własnego rejestru. Generator Dockerfile pomoże przygotować jego definicję, ale przed wdrożeniem obraz nadal należy zbudować, przetestować i przeskanować.

Sekrety poza plikiem compose.yaml

Nie wpisuj prawdziwego hasła bazy do formularza ani do pliku w repozytorium. Generator przyjmuje wyłącznie nazwę zmiennej, na przykład POSTGRES_PASSWORD, i wstawia wymaganą interpolację. Compose przerwie konfigurację z czytelnym błędem, jeżeli zmienna nie jest ustawiona.

Przed uruchomieniem ustaw zmienną w systemie wdrożeniowym, menedżerze sekretów CI/CD albo bezpiecznym pliku środowiskowym poza repozytorium. Jeśli potrzebujesz szablonu nazw bez wartości, użyj generatora .env.example. W organizacji z dedykowanym magazynem sekretów można po wygenerowaniu zastąpić zmienną mechanizmem secrets i dostosować aplikację do odczytu pliku z /run/secrets.

Healthchecki i kolejność uruchamiania

Samo uruchomienie procesu bazy nie oznacza, że przyjmuje ona połączenia. PostgreSQL dostaje test pg_isready, a Redis polecenie redis-cli ping. Aplikacja używa długiej formy depends_on z warunkiem service_healthy, dlatego startuje dopiero po pozytywnym wyniku kontroli usług danych. Nginx czeka na rozpoczęcie usługi aplikacji i weryfikuje własną konfigurację przez nginx -t.

Nie da się stworzyć uniwersalnego healthchecka aplikacji dla dowolnego obrazu: PHP-FPM, Node, proces worker i aplikacja HTTP mają inne punkty gotowości. Po skopiowaniu pliku dodaj test dopasowany do obrazu, na przykład zapytanie do lekkiego endpointu /health, i zmień warunek Nginx na service_healthy. To uczciwsze niż test procesu, który dawałby zielony stan mimo niedziałających zależności.

Sieć, porty i trwałość danych

Wszystkie usługi należą do prywatnej sieci app-net. PostgreSQL i Redis nie mają sekcji ports, więc nie są wystawione na interfejs hosta. Aplikacja używa expose, które dokumentuje port dostępny wewnątrz sieci, ale go nie publikuje. Jedynym wejściem z hosta jest port 80 Nginx. TLS można zakończyć w zewnętrznym load balancerze albo rozszerzyć konfigurację proxy o certyfikaty.

Po zaznaczeniu wolumenów dane PostgreSQL i Redis trafiają do nazwanych wolumenów zadeklarowanych na najwyższym poziomie. Generator nie montuje generycznego katalogu aplikacji, bo jego ścieżka zależy od własnego obrazu i błędny mount mógłby zasłonić pliki. Odznaczenie opcji usuwa montowania i deklaracje usług danych, więc plik pozostaje składniowo poprawny, ale dane staną się nietrwałe. Produkcyjnie pozostaw wolumeny włączone i opracuj niezależny backup bazy; wolumen nie jest kopią zapasową.

Uruchomienie i kontrola konfiguracji

  1. Wybierz usługi, podaj nazwę projektu, port procesu aplikacji i wersjonowane obrazy. Nginx wymaga zaznaczonej aplikacji, bo generowana konfiguracja zakłada reverse proxy.
  2. Ustaw nazwę zmiennej hasła. Nie podawaj wartości sekretu w generatorze.
  3. Skopiuj YAML do compose.yaml oraz przygotuj nginx.conf wskazujący usługę app i jej port.
  4. Ustaw sekret w środowisku, uruchom docker compose config i przejrzyj rozwinięty model. Składnię możesz dodatkowo sprawdzić w walidatorze YAML.
  5. Uruchom docker compose up -d, a potem sprawdź docker compose ps, logi, stan healthchecków i dostępność endpointu aplikacji.

Jeśli potrzebujesz prostszego pliku do pracy lokalnej, generator Docker Compose oferuje szerszy zestaw usług deweloperskich. Wariant produkcyjny celowo unika bind mountu całego kodu i skupia się na niezmiennym obrazie z rejestru.

Najczęściej zadawane pytania

Czy ten plik jest gotowy do wdrożenia bez zmian?

Jest bezpieczną bazą, ale trzeba podać własny obraz aplikacji, przygotować nginx.conf, ustawić sekret, dodać healthcheck aplikacji oraz dopasować backup, monitoring, limity zasobów i TLS do infrastruktury.

Dlaczego nie ma klucza version?

Nowoczesny Docker Compose wdraża bieżącą specyfikację i traktuje pole version jako przestarzałe. Jego pominięcie usuwa ostrzeżenia i nie odbiera funkcji użytych w pliku.

Dlaczego baza i Redis nie publikują portów?

Usługi komunikują się nazwami w prywatnej sieci Compose. Brak mapowania portu hosta ogranicza powierzchnię ataku; administrację najlepiej prowadzić przez kontrolowany tunel lub jednorazowy kontener w tej samej sieci.

Czy nazwany wolumen wystarcza jako backup?

Nie. Wolumen zachowuje dane przy wymianie kontenera, ale nie chroni przed usunięciem, awarią hosta ani błędem aplikacji. Potrzebny jest regularny backup z testem odtworzenia.

Jak bezpiecznie dodać HTTPS?

Zakończ TLS w zarządzanym load balancerze lub reverse proxy albo zamontuj certyfikaty jako sekrety i dodaj osobną konfigurację Nginx. Nie kopiuj prywatnego klucza do obrazu ani repozytorium.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!