46 lines
1.0 KiB
Docker
46 lines
1.0 KiB
Docker
# Python 3.13 기반 이미지
|
|
FROM python:3.13-slim
|
|
|
|
# 환경 변수 설정
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
PIP_NO_CACHE_DIR=1 \
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1
|
|
|
|
# 작업 디렉토리 설정
|
|
WORKDIR /app
|
|
|
|
# 시스템 패키지 업데이트 및 필요한 패키지 설치
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
gcc \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# uv 설치
|
|
RUN pip install uv
|
|
|
|
# 의존성 파일 복사
|
|
COPY pyproject.toml uv.lock ./
|
|
|
|
# 의존성 설치
|
|
RUN uv pip install --system -r pyproject.toml
|
|
|
|
# 애플리케이션 코드 복사
|
|
COPY . .
|
|
|
|
# 정적 파일 디렉토리 생성
|
|
RUN mkdir -p /app/staticfiles
|
|
|
|
# 데이터베이스 마이그레이션 및 정적 파일 수집 스크립트
|
|
COPY docker-entrypoint.sh /app/
|
|
RUN chmod +x /app/docker-entrypoint.sh
|
|
|
|
# 포트 노출
|
|
EXPOSE 8000
|
|
|
|
# 엔트리포인트 설정
|
|
ENTRYPOINT ["/app/docker-entrypoint.sh"]
|
|
|
|
# 기본 명령어
|
|
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "4", "executor.wsgi:application"]
|