FROM python:3.9-slim | |
WORKDIR /app | |
# Install dependencies | |
COPY requirements.txt . | |
RUN pip install --no-cache-dir -r requirements.txt | |
# Copy model and code | |
COPY . . | |
# Create non-root user | |
RUN useradd -m -u 1000 modeluser | |
USER modeluser | |
# Expose port | |
EXPOSE 8000 | |
# Health check | |
HEALTHCHECK --interval=30s --timeout=30s --start-period=5s --retries=3 \ | |
CMD curl -f http://localhost:8000/health || exit 1 | |
CMD ["uvicorn", "api:app", "--host", "0.0.0.0", "--port", "8000"] |