# syntax=docker/dockerfile:1 # Образ сервиса админки (FastAPI + Jinja2/HTMX). FROM python:3.12-slim ENV PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ PIP_NO_CACHE_DIR=1 \ PIP_DISABLE_PIP_VERSION_CHECK=1 WORKDIR /app # Непривилегированный пользователь RUN useradd --create-home --uid 1000 app COPY requirements-admin.txt ./ RUN pip install --no-cache-dir -r requirements-admin.txt COPY common ./common COPY admin ./admin COPY images ./images RUN mkdir -p /app/media && chown app:app /app/media USER app EXPOSE 8000 # Живость процесса: HTTP-проверка /healthz (порт берётся из ADMIN_PORT). HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ CMD python -c "import os,urllib.request; urllib.request.urlopen('http://127.0.0.1:'+os.environ.get('ADMIN_PORT','8000')+'/healthz', timeout=3)" CMD ["python", "-m", "admin"]