|
|
|
FROM python:3.10-slim AS builder |
|
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
build-essential \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
ENV PYTHONUNBUFFERED=1 |
|
ENV PYTHONDONTWRITEBYTECODE=1 |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
COPY requirements.txt /app/ |
|
|
|
|
|
RUN pip install --no-cache-dir --upgrade pip |
|
RUN pip install --no-cache-dir -r requirements.txt |
|
|
|
|
|
FROM python:3.10-slim |
|
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
libpq-dev \ |
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
RUN groupadd -r appuser && useradd -r -g appuser appuser |
|
|
|
|
|
ENV PYTHONUNBUFFERED=1 |
|
ENV PYTHONDONTWRITEBYTECODE=1 |
|
|
|
|
|
WORKDIR /app |
|
|
|
|
|
COPY --from=builder /usr/local /usr/local |
|
|
|
|
|
COPY . /app |
|
|
|
|
|
RUN chown -R appuser:appuser /app |
|
|
|
|
|
USER appuser |
|
|
|
|
|
EXPOSE 8001 |
|
|
|
|
|
CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "--workers", "4", "--bind", "0.0.0.0:8001", "main:app"] |