Generator Docker Compose
Co działa w tym stosie
Ręczne pisanie docker-compose.yml oznacza zapamiętanie dokładnego wcięcia, umieszczanie w cudzysłowie każdego mapowania portów oraz wiedzę, którą wersję pliku rozumie Twój program Compose. Ten generator pozwala definiować usługi za pomocą prostych pól: nazwy, obrazu, mapowań portów host:kontener oraz woluminów. Tworzy poprawny plik YAML zgodny z nowoczesną specyfikacją Compose (bez klucza wersji) i z rozsądnymi ustawieniami domyślnymi.
Jak zbudować plik Compose
-
1
Dodaj usługi
Nadaj każdej usłudze nazwę i obraz, a potem ustaw mapowania portów, wolumeny, zmienne środowiskowe i zasadę restartu. Dwie startowe usługi są już wypełnione i uruchamiają się bez zmian.
-
2
Popraw lub usuń wiersze
Edytuj dowolne pole bezpośrednio, dodaj kolejną usługę przyciskiem + Service albo usuń wiersz, którego nie potrzebujesz.
-
3
Sprawdź wygenerowany YAML
Sprawdź wygenerowany YAML: mapowania portów są w cudzysłowach, każdy nazwany wolumen jest zadeklarowany na końcu pliku, a klucz version zostaje pominięty, tak jak zakłada współczesna specyfikacja Compose.
-
4
Skopiuj plik
Skopiuj wygenerowany docker-compose.yml i wklej go do katalogu głównego projektu.
Nowoczesna specyfikacja Compose
Compose V2 (wtyczka dostarczana z Docker Desktop i nowoczesnym Docker Engine) opiera się na Compose Specification. Klucz version: jest przestarzały; generator go pomija. Klucze najwyższego poziomu to services, networks, volumes, configs i secrets.
Anatomia usługi
Usługa zbliżona do produkcyjnej wygląda tak:
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
Woluminy: montaż bezpośredni vs nazwany
- Montaż bezpośredni (
./app:/var/www) łączy kontener ze ścieżką na hoście; świetny do lokalnego rozwoju, bo zmiany są widoczne od razu. - Wolumen nazwany (
pgdata:/var/lib/postgresql/data) jest zarządzany przez Dockera i trwa niezależnie od ścieżek na hoście; właściwy wybór dla baz danych i wszystkiego, czego nie chcesz przypadkiem usunąć przezrm -rf. - Wolumen anonimowy - unikaj. Przetrwa restarty, ale znika bez ostrzeżenia po
docker compose down -v.
Sieci
Domyślnie Compose tworzy sieć nazwaną od projektu i podłącza do niej każdą usługę. Deklarowanie jawnych sieci przydaje się, gdy:
- chcesz odizolować bazę danych od usługi dostępnej publicznie;
- potrzebujesz mostka z własną podsiecią, aby dopasować się do istniejącej infrastruktury;
- chcesz podłączyć kontenery do istniejącej sieci zewnętrznej (
external: true).
Częste błędy, których warto unikać
- Konflikty klucza wersji.
version: "3.8"na górze uniemożliwia nowszym funkcjom, takim jakstart_intervalw healthchecku, działanie w starym Compose; generator pomija klucz wersji. - Cudzysłowy przy portach.
8080:80w niektórych przypadkach granicznych jest interpretowany jako YAML w systemie sześćdziesiątkowym (base-60); generator zawsze otacza mapowania portów cudzysłowem. - Wpisane na sztywno sekrety. Sekrety wpisane bezpośrednio do compose.yml trafiają do gita. Trzymaj je w
env_filelub w magazynie sekretów platformy. - depends_on bez warunku. Zwykłe
depends_on: [db]czeka na start kontenera, a nie na gotowość usługi. Użyjcondition: service_healthyi dodaj healthcheck do zależności.
Najczęściej zadawane pytania
Na aktualną Compose Specification (zgodną z Docker Compose V2). Plik pomija klucz version:, tak pisze się nowoczesne pliki Compose. Działa z Docker Compose V2.22 i nowszymi wersjami.
Przez formularz nie. Formularz obejmuje obraz, porty, wolumeny, zmienne środowiskowe i zasadę restartu oraz deklaruje wszystkie nazwane wolumeny montowane przez usługi, tak jak wymaga tego Compose. Sieci i health checki dopisz ręcznie do wygenerowanego pliku YAML.
Nie, to narzędzie skupia się na compose.yml. Do plików Dockerfile użyj Generatora Dockerfile, który zajmuje się wyborem obrazu bazowego i kolejnością instrukcji COPY/RUN dla pięciu technologii.
Nie. Definicje usług służą wyłącznie do zbudowania YAML na tej stronie. Nie są zapisywane, wysyłane ani udostępniane.
Powiązane narzędzia
Generator konfiguracji webpack
Utwórz plik webpack.config.js dla webpacka 5 do czystego JavaScriptu, Reacta lub Vue: TypeScript, Babel, CSS lub Sass, obrazy, HtmlWebpackPlugin, serwer deweloperski i polecenie npm install.
Generator kolorów analogicznych
Twórz pięciokolorowe palety analogiczne z dowolnego koloru bazowego: klasyczną trójkę, dwie zewnętrzne barwy oraz wartości hex, RGB i HSL.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Walidator OpenAPI
Wklej dokument OpenAPI lub Swagger w JSON albo YAML i sprawdź jego podstawową strukturę: pole wersji, obiekt info i paths, z czytelnymi błędami i ostrzeżeniami.
Kod na obraz
Wklej kod, ustaw motyw, kolory, rozmiar czcionki, odstępy, nagłówek i numery wierszy, sprawdź podgląd canvas i pobierz PNG. Renderowanie zwykłego tekstu, bez podświetlania składni.
Kreator diagramów ERD
Utwórz lokalnie diagram encja-relacja z maksymalnie 12 encjami, polami, relacjami i licznościami. Eksportuj Mermaid, SVG, PNG lub JSON.
Narzędzie jest dostępne w innych językach
- Docker Compose-generator [SV]
- Generator Docker Compose [ID]
- Gerador de Docker Compose [PT]
- Docker-Compose-Generator [DE]
- مولّد Docker Compose [AR]
- Docker Compose 생성기 [KO]
- ตัวสร้าง Docker Compose [TH]
- Trình tạo Docker Compose [VI]
- Docker Composeジェネレーター [JA]
- Generador de Docker Compose [ES]
- Générateur Docker Compose [FR]
- Docker Compose-generator [NL]
- Docker Compose 生成器 [ZH]
- Docker Compose Generator [EN]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]
- Docker Compose Oluşturucu [TR]