Django Academy · 강의

프로덕션 이미지 모범 사례

다단계 빌드와 루트가 아닌 사용자를 사용합니다

레슨 4/413개 단계

프로덕션 이미지 모범 사례은(는) CoddyKit의 무료 Django Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Django Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Django Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

더 작고 안전한 이미지

운영 환경의 이미지는 작고 안전해야 합니다. 더 가벼운 이미지는 더 빠르게 배포되고, 더 신속하게 시작되며, 공격자가 노릴 대상도 줄어듭니다. 🛡️

다단계 빌드 사용

다단계 빌드는 한 단계에서 의존 항목을 컴파일하고, 결과물만 깨끗한 최종 이미지에 복사합니다.

FROM python:3.12 AS builder
FROM python:3.12-slim AS final

필요한 것만 복사하기

빌더 단계에서 COPY --from을 사용해 설치된 패키지만 복사하고, 컴파일러와 빌드 부산물은 남겨 두세요.

COPY --from=builder /usr/local/lib/python3.12 /usr/local/lib/python3.12

루트로 실행하지 않기

루트가 아닌 USER를 생성하면 침해된 프로세스가 컨테이너나 호스트를 자유롭게 수정할 수 없습니다.

RUN adduser --disabled-password appuser
USER appuser

버전 고정

빌드를 재현할 수 있고 예기치 않은 업데이트로 인해 중단되지 않도록 requirements.txt에서 정확한 버전을 고정하세요.

Django==5.0.6
gunicorn==22.0.0

이미지에 비밀 정보 넣지 않기

실행 시 환경 변수로 비밀 정보를 전달하고, 키나 비밀번호를 이미지 자체에 절대 구워 넣지 마세요.

SECRET_KEY=${SECRET_KEY}

상태 확인 추가

HEALTHCHECK를 사용하면 오케스트레이터가 컨테이너가 실제로 작동하며 요청을 처리하고 있는지 알 수 있습니다.

HEALTHCHECK CMD curl -f http://localhost:8000/health || exit 1

DEBUG를 False로 설정

운영 환경에서는 항상 DEBUG=False로 실행하여 오류 페이지를 통해 코드, 설정 또는 스택 추적 정보가 사용자에게 노출되지 않도록 하세요.

DEBUG = False

릴리스에 태그 지정

latest만 사용하지 말고 실제 버전으로 이미지에 태그를 지정하세요. 그러면 무엇이 배포되었는지 항상 정확히 알 수 있고 롤백도 할 수 있습니다.

docker build -t myapp:1.4.0 .

취약점 검사

빌드한 이미지에 대해 검사를 실행하여 기본 이미지와 의존 항목의 알려진 취약점을 조기에 찾아내세요.

docker scout cves myapp:1.4.0

캐시를 고려한 단계 순서

거의 변경되지 않는 단계를 앞에 배치하고 코드는 마지막에 두세요. 그러면 대부분의 재빌드에서 캐시된 레이어를 재사용해 빠르게 완료할 수 있습니다.

빠른 확인

최종 운영 이미지의 크기를 가장 직접적으로 줄이는 방법은 무엇인가요?

복습

다단계 빌드, 루트가 아닌 사용자, 버전 고정, 실행 시 비밀 정보 주입, 상태 확인, DEBUG 비활성화로 이미지를 강화했습니다. 운영 환경에 사용할 준비가 완료되었습니다! 🏁

무료로 시작

AI 튜터와 함께 Python을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
30
레슨
120

자주 묻는 질문

“프로덕션 이미지 모범 사례” 강의는 무료인가요?

네 — “프로덕션 이미지 모범 사례” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Django Academy 강의 전체를 잠금 해제할 수 있습니다. Django Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“프로덕션 이미지 모범 사례”에서 뭘 배우나요?

다단계 빌드와 루트가 아닌 사용자를 사용합니다 브라우저에서 직접 실행하는 실습 코드로 Django Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Django Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Django Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“프로덕션 이미지 모범 사례” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Django Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Django Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Django Dockerfile 작성
  2. Postgres와 Redis를 사용하는 docker-compose
  3. 진입점, 마이그레이션 및 collectstatic
  4. 프로덕션 이미지 모범 사례
← Django Academy(으)로 돌아가기