File size: 987 Bytes
64cd325 223e0f7 64cd325 1dd235a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# Stage 1: Build stage with dependencies
FROM python:3.10-slim as builder
WORKDIR /app
# Install build dependencies
RUN pip install --upgrade pip
# Copy requirements first to leverage Docker cache
COPY requirements.txt .
# Install python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# ---
# Stage 2: Final stage
FROM python:3.10-slim
WORKDIR /app
# Create a non-root user
RUN useradd --create-home appuser
USER appuser
# Copy installed dependencies from builder stage
COPY --from=builder /usr/local/lib/python3.10/site-packages /usr/local/lib/python3.10/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin
# Copy the application code and model files
# Note: The Docker build context should be the parent directory of 'kronos-api-service'
COPY --chown=appuser:appuser ./ .
# Expose the port the app runs on
EXPOSE 7860
# Set the default command to run the app with Gunicorn
CMD ["gunicorn", "--bind", "0.0.0.0:7860", "--workers", "1", "app:app"] |