Entrypointy, migracje i collectstatic
Uruchamianie kroków startowych wewnątrz kontenera
Entrypointy, migracje i collectstatic to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
Znaczenie kroków uruchamiania
Zanim kontener zacznie obsługiwać ruch, często musi uruchomić migracje i zebrać pliki statyczne. Zautomatyzujmy te kroki uruchamiania. ⚙️
Czym jest entrypoint
entrypoint to skrypt uruchamiany przy każdym starcie kontenera, tuż przed przejęciem sterowania przez główne polecenie.
Napisz skrypt
Utwórz plik entrypoint.sh z linią shebang, aby kontener wiedział, że ma uruchomić go za pomocą powłoki.
#!/bin/sh
set -eStosowanie migracji przy uruchamianiu
Uruchom migrate w entrypoint, aby schemat bazy danych był zawsze aktualny w chwili uruchomienia aplikacji.
python manage.py migrate --noinputZbieranie plików statycznych
Uruchom collectstatic, aby skopiować pliki CSS i JS do jednego folderu, który serwer może udostępniać na produkcji.
python manage.py collectstatic --noinputPrzekazanie sterowania za pomocą exec
Zakończ skrypt poleceniem exec, aby aplikacja stała się procesem 1 i poprawnie odbierała sygnały zatrzymania.
exec "$@"Nadanie uprawnień do wykonywania
Ustaw w Dockerfile skrypt jako wykonywalny, aby kontener mógł go rzeczywiście uruchomić podczas startu.
RUN chmod +x entrypoint.shPołączenie w Dockerfile
Wskaż skrypt w ENTRYPOINT, a następnie pozostaw CMD jako polecenie, które ma zostać wykonane na końcu.
ENTRYPOINT ["./entrypoint.sh"]
CMD ["gunicorn", "config.wsgi"]Dlaczego --noinput
Flaga --noinput uniemożliwia Django zatrzymywanie się w oczekiwaniu na odpowiedzi, co jest niezbędne podczas bezobsługowego uruchamiania kontenerów.
Oczekiwanie na bazę danych
Postgres może uruchamiać się powoli, dlatego przed wykonaniem migracji warto poczekać na port db, aby uniknąć błędów połączenia.
until nc -z db 5432; do sleep 1; doneObserwowanie logów
Użyj docker compose logs, aby potwierdzić, że podczas uruchamiania wykonano migracje i zebrano pliki statyczne.
docker compose logs -f webSzybkie sprawdzenie
Dlaczego skrypt entrypoint powinien kończyć się poleceniem exec uruchamiającym główne polecenie?
Podsumowanie
Twój entrypoint uruchamia teraz migrate i collectstatic z opcją --noinput, czeka na db, a następnie wykonuje aplikację za pomocą exec jako PID 1. Za każdym razem gotowa do uruchomienia. ✅
Ucz się Python dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Entrypointy, migracje i collectstatic” jest bezpłatna?
Tak — pełny tekst „Entrypointy, migracje i collectstatic” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Entrypointy, migracje i collectstatic”?
Uruchamianie kroków startowych wewnątrz kontenera Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Django Academy?
Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Entrypointy, migracje i collectstatic”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?
Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Pisanie Dockerfile dla Django
- docker-compose z Postgres i Redis
- Entrypointy, migracje i collectstatic
- Dobre praktyki dotyczące obrazu produkcyjnego