test / Dockerfile.cpu
hbs2's picture
Upload 16 files
100d4a5 verified
Raw
History Blame Contribute Delete
1.7 kB
# === Stage 1: Install dependencies ===
FROM python:3.11-slim-bullseye AS builder
WORKDIR /subgen
# Runtime build tools only β€” git and ffmpeg not needed here
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && apt-get install -y --no-install-recommends \
tzdata
# Torch β€” own layer so requirements.txt changes don't bust it
RUN --mount=type=cache,target=/root/.cache/pip \
pip install --prefix=/install torch torchaudio \
--extra-index-url https://download.pytorch.org/whl/cpu
# App dependencies β€” only rebuilds when requirements.txt changes
COPY requirements.txt .
RUN --mount=type=cache,target=/root/.cache/pip \
pip install --prefix=/install -r requirements.txt \
--extra-index-url https://download.pytorch.org/whl/cpu
# === Stage 2: Minimal runtime image ===
FROM python:3.11-slim-bullseye AS runtime
WORKDIR /subgen
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
apt-get update && apt-get install -y --no-install-recommends \
ffmpeg curl gosu tzdata \
&& rm -rf /var/lib/apt/lists/*
# Copy installed packages from builder
COPY --from=builder /install /usr/local
# App files last β€” changes here don't bust the layers above
COPY launcher.py subgen.py language_code.py /subgen/
RUN mkdir -p /cache && chmod 777 /cache
ENV XDG_CACHE_HOME=/cache \
HF_HOME=/cache/huggingface \
MPLCONFIGDIR=/cache/matplotlib \
PYTHONUNBUFFERED=1
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["python3", "launcher.py"]