Django

Django & Docker

Dockerfile, docker-compose, 멀티 스테이지 빌드, 볼륨, 네트워크, 개발 환경과 프로덕션 환경

20 면접 질문·
Senior
1

프로덕션 환경의 Django 애플리케이션에 권장되는 베이스 이미지는 무엇입니까?

답변

python:3.x-slim 이미지는 작은 크기와 호환성 사이의 균형을 제공하므로 권장됩니다. 전체 이미지의 불필요한 의존성을 피하면서 필수 라이브러리를 포함합니다. Alpine 이미지는 더 가볍지만 일부 컴파일된 Python 라이브러리(psycopg2 등)와의 호환성 문제를 일으킬 수 있습니다.

2

Django 애플리케이션에서 멀티 스테이지 빌드의 주요 이점은 무엇입니까?

답변

멀티 스테이지 빌드는 빌드 환경(모든 컴파일 도구 포함)과 런타임 환경을 분리하여 최종 이미지 크기를 크게 줄입니다. 의존성은 첫 번째 스테이지에서 컴파일되고, 그 후 필요한 파일만 최종 이미지로 복사되며 빌드 도구, 임시 파일, 캐시는 제외됩니다.

3

docker-compose.yml에서 Django 컨테이너가 PostgreSQL이 연결을 받을 준비가 될 때까지 기다리도록 어떻게 보장합니까?

답변

depends_on 디렉티브만으로는 컨테이너 시작만 보장될 뿐 서비스 가용성은 보장되지 않습니다. PostgreSQL이 실제로 준비될 때까지 기다리려면 wait-for-it.sh 스크립트나 dockerize, 또는 healthcheck와 함께 service_healthy 조건을 사용해야 합니다. 이 접근 방식은 Django 애플리케이션 시작 시 연결 오류를 방지합니다.

4

Django 애플리케이션의 Dockerfile에서 COPY와 ADD의 차이는 무엇입니까?

5

Python 의존성을 설치할 때 Docker 레이어 캐싱을 어떻게 최적화합니까?

+17 면접 질문

다음 면접을 위해 Django을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기