linguaielts-api / backend /Dockerfile
phuc1st
tach file requirement thành 2 file
2614607
Raw
History Blame Contribute Delete
1.04 kB
FROM python:3.11-slim
RUN apt-get update && apt-get install -y ffmpeg curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# ── Layer 1: PyTorch CPU-only (~200 MB instead of ~2.5 GB CUDA) ──────────────
RUN pip install --no-cache-dir \
torch torchaudio \
--extra-index-url https://download.pytorch.org/whl/cpu
# ── Layer 2: Core web/API deps (changes rarely → cached) ─────────────────────
COPY requirements-core.txt .
RUN pip install --no-cache-dir -r requirements-core.txt
# ── Layer 3: ML deps (depends on PyTorch already installed) ───────────────────
COPY requirements-ml.txt .
RUN pip install --no-cache-dir -r requirements-ml.txt
COPY . .
RUN useradd -m appuser && chown -R appuser /app
USER appuser
EXPOSE 8000
CMD ["gunicorn", "app.main:app", \
"-w", "4", \
"-k", "uvicorn.workers.UvicornWorker", \
"--bind", "0.0.0.0:8000", \
"--timeout", "120", \
"--access-logfile", "-"]