a182def9e6
DS 보안감사 리메디 6순위 잔재(lockfile) 종결. requirements.txt(floor 사양)는 유지, Dockerfile 설치 소스를 requirements.lock(== 핀)으로 전환 — 재빌드 시 의존성 변동 위험 제거. lock = 라이브 컨테이너 known-good freeze 스냅샷. 검증: 신규 이미지 freeze == lock 일치·import smoke·클린부팅·health 200. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
20 lines
668 B
Docker
20 lines
668 B
Docker
FROM python:3.11-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# LibreOffice headless (PDF 변환용) + 한글/CJK 폰트 + ffmpeg (비디오 썸네일)
|
|
RUN apt-get update && \
|
|
apt-get install -y --no-install-recommends \
|
|
libreoffice-core libreoffice-calc libreoffice-writer libreoffice-impress \
|
|
fonts-noto-cjk fonts-noto-cjk-extra fonts-nanum \
|
|
fonts-noto-core fonts-noto-extra \
|
|
ffmpeg && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY requirements.txt requirements.lock ./
|
|
RUN pip install --no-cache-dir -r requirements.lock
|
|
|
|
COPY . .
|
|
|
|
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--proxy-headers", "--forwarded-allow-ips", "*"]
|