kronos / Dockerfile
yangyang158's picture
Feat: Set workers to 1, fix JSON parsing, and rename predict endpoint
1dd235a
raw
history blame contribute delete
987 Bytes
# 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"]