29 lines
648 B
Docker
29 lines
648 B
Docker
FROM python:3.13-slim AS base
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV PIP_NO_CACHE_DIR=1
|
|
|
|
WORKDIR /app
|
|
|
|
RUN apt-get update \
|
|
&& apt-get upgrade -y \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN addgroup --system app && adduser --system --ingroup app app
|
|
|
|
COPY requirements.txt /app/requirements.txt
|
|
RUN pip install --upgrade pip && pip install -r /app/requirements.txt
|
|
|
|
COPY . /app
|
|
|
|
RUN chmod +x /app/entrypoint.sh
|
|
|
|
USER app
|
|
|
|
EXPOSE 8000
|
|
|
|
HEALTHCHECK --interval=30s --timeout=5s --retries=5 CMD python -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8000/api/v1/healthz')" || exit 1
|
|
|
|
CMD ["/app/entrypoint.sh"]
|