nlpxucan-wizardlm
SUCCESS
127m 26s
History Source
SummaryIterations3Transcript52Dockerfile
Dockerfile41 lines · 1187 chars
FROM python:3.12.13-bookworm AS builder

# Install build dependencies for Python packages
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        build-essential git curl ca-certificates ffmpeg libffi-dev libssl-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /build

# Install Python dependencies first (to leverage caching)
COPY training/requirements.txt ./training/requirements.txt
RUN python -m pip install --upgrade pip \
    && pip install --no-cache-dir -r training/requirements.txt

FROM python:3.12.13-bookworm

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

# Install runtime/system dependencies
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        build-essential git curl ca-certificates ffmpeg libffi-dev libssl-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Copy installed Python packages from builder
COPY --from=builder /usr/local /usr/local

# Copy repository code
COPY . .

# Create a non-root user and use it
RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app
USER appuser

# Lightweight startup check: print Python version via a small script
CMD ["python", "/app/health_check.py"]