# Build stage FROM python:3.10 as builder # Install build dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* # Create user with home directory RUN useradd -m user # Set up environment ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH WORKDIR $HOME/app # Copy requirements first for better caching COPY --chown=user requirements.txt . # Install Python dependencies to user directory USER user RUN pip install --user --no-cache-dir -r requirements.txt # Production stage FROM python:3.10-slim as production # Install only runtime dependencies if needed RUN apt-get update && apt-get install -y --no-install-recommends \ # Add any runtime dependencies here \ && rm -rf /var/lib/apt/lists/* \ && apt-get clean # Create user with home directory RUN useradd -m user # Set up environment ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 WORKDIR $HOME/app # Copy installed packages from builder stage COPY --from=builder --chown=user /home/user/.local /home/user/.local # Copy application code COPY --chown=user ./ $HOME/app USER user CMD ["python", "app.py"]