2026-09-20 12:27:47 +03:00
|
|
|
FROM python:3.11-slim
|
|
|
|
|
WORKDIR /srv
|
|
|
|
|
ENV PYTHONUNBUFFERED=1 PIP_NO_CACHE_DIR=1 PYTHONPATH=/srv
|
2026-09-26 21:33:50 +03:00
|
|
|
COPY requirements.txt requirements.lock ./
|
|
|
|
|
RUN pip install -r requirements.lock
|
2026-09-20 12:27:47 +03:00
|
|
|
COPY alembic.ini .
|
|
|
|
|
COPY alembic alembic
|
|
|
|
|
COPY app app
|
|
|
|
|
COPY web web
|
2026-09-26 21:33:50 +03:00
|
|
|
RUN useradd --system --uid 10001 --no-create-home app
|
|
|
|
|
USER app
|
|
|
|
|
HEALTHCHECK --interval=15s --timeout=5s --start-period=30s --retries=5 \
|
|
|
|
|
CMD python -c "import sys, urllib.request; sys.exit(0 if urllib.request.urlopen('http://127.0.0.1:8000/healthz', timeout=3).status == 200 else 1)"
|
2026-09-20 12:27:47 +03:00
|
|
|
CMD ["sh", "-c", "alembic upgrade head && uvicorn app.main:app --host 0.0.0.0 --port 8000"]
|