Django

Django & Docker

Dockerfile, docker-compose, multi-stage builds, wolumeny, sieci, środowisko deweloperskie vs produkcyjne

20 pytań z rozmów·
Senior
1

Który obraz bazowy jest zalecany dla aplikacji Django w produkcji?

Odpowiedź

Obraz python:3.x-slim jest zalecany, ponieważ oferuje równowagę między małym rozmiarem a kompatybilnością. Zawiera niezbędne biblioteki, unikając zbędnych zależności pełnych obrazów. Obrazy Alpine, choć lżejsze, mogą powodować problemy z kompatybilnością z niektórymi skompilowanymi bibliotekami Pythona (jak psycopg2).

2

Jaka jest główna zaleta multi-stage build dla aplikacji Django?

Odpowiedź

Multi-stage build znacząco zmniejsza rozmiar finalnego obrazu poprzez oddzielenie środowiska build (ze wszystkimi narzędziami kompilacji) od środowiska uruchomieniowego. Zależności są kompilowane w pierwszym etapie, następnie tylko niezbędne pliki są kopiowane do finalnego obrazu, z wyłączeniem narzędzi build, plików tymczasowych i cache.

3

W pliku docker-compose.yml, jak zapewnić, że kontener Django czeka, aż PostgreSQL będzie gotowy do przyjmowania połączeń?

Odpowiedź

Sama dyrektywa depends_on gwarantuje tylko uruchomienie kontenera, a nie dostępność usługi. Aby poczekać, aż PostgreSQL będzie faktycznie gotowy, należy użyć skryptu wait-for-it.sh lub dockerize, albo warunku service_healthy z healthcheck. To podejście zapobiega błędom połączenia podczas uruchamiania aplikacji Django.

4

Jaka jest różnica między COPY a ADD w pliku Dockerfile dla aplikacji Django?

5

Jak zoptymalizować cache warstw Docker podczas instalacji zależności Python?

+17 pytań z rozmów

Opanuj Django na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo