Files
executor/Dockerfile

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"]