Generator Dockerfile
Skonfiguruj aplikację
Wybierz jeden z pięciu stosów i podaj plik lub pakiet, który rzeczywiście uruchamia aplikację.
PHP-FPM obsługuje FastCGI na wewnętrznym porcie TCP 9000, a nie HTTP. Połącz go w sieci prywatnej z serwerem WWW obsługującym FastCGI. Nie publikuj tego portu w internecie.
Sprawdź wygenerowane plikiUtwórz Dockerfile i pasujący plik .dockerignore dla projektu Node.js, Python, PHP-FPM, Go lub Rust. Wybierz stos i podaj ścieżkę lub nazwę pliku wykonywalnego, której naprawdę używa Twoja aplikacja. Dzięki temu komenda startowa nie jest zgadywana. Wynik stanowi punkt wyjścia do zbudowania typowego projektu z podanymi plikami manifestów. Przeczytaj oba wygenerowane pliki, zanim dodasz je do repozytorium.
Tworzenie i sprawdzanie plików
-
1
Wybierz stos i punkt uruchomienia
Dla Node.js lub Python podaj względną ścieżkę skryptu, dla Go ścieżkę pakietu, a dla Rust nazwę pliku wykonywalnego Cargo. PHP-FPM używa własnej stałej komendy startowej.
-
2
Ustaw katalog roboczy i port wewnętrzny
Wybierz dozwoloną ścieżkę aplikacji, np. /app lub /srv/app. EXPOSE jedynie dokumentuje port, więc aplikacja nadal musi na nim nasłuchiwać. PHP-FPM używa wewnętrznego portu FastCGI 9000.
-
3
Sprawdź oba pliki
Przeczytaj Dockerfile i .dockerignore razem. Sprawdź nazwy manifestów, punkt uruchomienia, uprawnienia i zależności systemowe potrzebne w projekcie.
-
4
Skopiuj lub pobierz
Pobierz ZIP i rozpakuj oba pliki w katalogu głównym kontekstu budowania Dockera albo skopiuj każdy z nich i zapisz jako Dockerfile oraz .dockerignore. Następnie zbuduj obraz i przetestuj kontener ze swoją aplikacją.
Wybierz punkt uruchomienia, który istnieje w projekcie
Generator nie może przejrzeć Twojego repozytorium. Korzysta z podanych przez Ciebie: stosu, punktu uruchomienia, katalogu roboczego i portu. Aplikacja Node.js wymaga pliku startowego JavaScript i pliku blokady npm; Python wymaga skryptu i requirements.txt; Go wymaga modułu go.mod i ścieżki pakietu; Rust wymaga projektu Cargo i nazwy pliku wykonywalnego. PHP-FPM działa inaczej: uruchamia proces FastCGI, a nie serwer HTTP. Umieść przed nim w prywatnej sieci kontenerów serwer WWW obsługujący FastCGI, np. Nginx. Obraz PHP nasłuchuje wewnętrznie na porcie 9000. Nie publikuj tego portu FastCGI w internecie.
| Stos | Podawany punkt uruchomienia | Pliki projektu do sprawdzenia |
|---|---|---|
| Node.js | Względna ścieżka JavaScript, np. server.js |
package.json, package-lock.json, plik startowy |
| Python | Względna ścieżka Python, np. app.py |
requirements.txt, plik startowy |
| PHP-FPM | Stały proces php-fpm |
Kod PHP i osobny serwer WWW obsługujący FastCGI |
| Go | Ścieżka pakietu, np. . lub ./cmd/server |
go.mod i kod źródłowy pakietu |
| Rust | Nazwa pliku wykonywalnego Cargo | Cargo.toml, Cargo.lock i wskazany cel binarny |
Co robią wygenerowane pliki
WORKDIR ustawia katalog roboczy procesu wewnątrz obrazu. Formularz przyjmuje ścieżki aplikacji pod /app, /srv/app, /opt/app, /workspace, /usr/src/app lub /var/www; odrzuca ścieżki systemowe, takie jak /root, oraz znaki, które mogłyby zamienić dane wejściowe w inną instrukcję Dockerfile. EXPOSE dokumentuje port kontenera; nie otwiera zapory hosta ani nie sprawia, że aplikacja zaczyna nasłuchiwać. Wygenerowany .dockerignore wyklucza z kontekstu budowania typowe lokalne katalogi zależności, dane kontroli wersji oraz pliki .env w katalogu głównym i podkatalogach. Przeczytaj go przed budowaniem: jeśli reguła wyklucza plik potrzebny w projekcie, dostosuj ją. Nie umieszczaj sekretów w kodzie źródłowym, ARG ani ENV.
Kompilowane projekty Go i Rust korzystają z oddzielnych etapów budowania i uruchamiania, więc narzędzia kompilatora nie trafiają do końcowego obrazu. Warianty Node.js i Python instalują zadeklarowane zależności, a wariant PHP-FPM uruchamia usługę FastCGI. Sam przepis na kontener nie gwarantuje, że prawdziwy projekt się zbuduje, uruchomi, przejdzie test stanu, obsłuży oczekiwaną trasę lub będzie bezpieczny do wdrożenia. Frameworki, natywne rozszerzenia, kompilacja zasobów i uprawnienia do plików mogą wymagać dodatkowych kroków. Kolejność warstw i działanie plików ignorowania opisują dobre praktyki budowania oraz dokumentacja kontekstu budowania Docker.
Sprawdź na swojej aplikacji
Rozpakuj ZIP w katalogu głównym kontekstu budowania, zachowując dokładne nazwy Dockerfile i .dockerignore, albo skopiuj oba pliki i zapisz je pod tymi nazwami. Jeśli Twoja wersja Dockera to obsługuje, uruchom docker build --check ., a następnie docker build -t my-app .. Uruchom obraz w środowisku testowym i sprawdź faktyczną komendę startową oraz trasę. W przypadku stosów HTTP mapuj tylko zamierzony port kontenera i sprawdź odpowiedź. Dla PHP-FPM zamiast publikować port 9000, użyj prywatnego połączenia sieciowego FastCGI. Przed wdrożeniem produkcyjnym sprawdź aktualne poprawki obrazu bazowego i pliki blokady zależności.
Najczęściej zadawane pytania
Nie. To typowy punkt wyjścia dla wybranego stosu i punktu uruchomienia. Sprawdź rzeczywiste pliki zależności, pakiety systemowe, budowanie zasobów, uprawnienia, zachowanie przy starcie i wymagania bezpieczeństwa. Przed wdrożeniem zbuduj i uruchom obraz ze swoim projektem.
Nie. EXPOSE dokumentuje port kontenera. Aplikacja musi na nim nasłuchiwać, a osobna konfiguracja uruchomieniowa kontroluje mapowanie na host. PHP-FPM używa FastCGI, a nie HTTP; trzymaj jego port 9000 w prywatnej sieci kontenerów za odpowiednim serwerem WWW.
Ten plik wyklucza z kontekstu budowania Dockera typowe lokalne zależności, dane Git i pliki środowiskowe. W archiwum ZIP kropka na początku nazwy zostaje zachowana. Rozpakuj oba pliki w katalogu głównym kontekstu budowania, a następnie sprawdź każdą regułę w swoim projekcie, aby nie wykluczyć plików potrzebnych do budowania obrazu.
Nie. Wybrany stos, punkt uruchomienia, katalog roboczy i port trafiają do adresu URL strony wynikowej oraz do tej witryny, aby wyświetlić pliki. Nie wpisuj sekretów ani ścieżek do prywatnych repozytoriów. Narzędzie nie przesyła kodu źródłowego ani nie przegląda repozytorium.
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
- Dockerfile-generator [SV]
- Generator Dockerfile [ID]
- Gerador de Dockerfile [PT]
- Dockerfile-Generator [DE]
- مولّد Dockerfile [AR]
- Dockerfile 생성기 [KO]
- ตัวสร้าง Dockerfile [TH]
- Trình tạo Dockerfile [VI]
- Dockerfileジェネレーター [JA]
- Generador de Dockerfile [ES]
- Générateur de Dockerfile [FR]
- Dockerfile-generator [NL]
- Dockerfile 生成器 [ZH]
- Dockerfile Generator [EN]
- Generatore di Dockerfile [IT]
- Генератор Dockerfile [RU]
- Dockerfile Oluşturucu [TR]