# syntax=docker/dockerfile:1 FROM python:3.12-slim-bookworm LABEL service="api" description="Flask API + Postgres + upload volume" ENV PYTHONDONTWRITEBYTECODE=1 ENV PYTHONUNBUFFERED=1 ENV PIP_NO_CACHE_DIR=1 WORKDIR /app # Системные зависимости для psycopg2-binary и healthcheck RUN apt-get update && apt-get install -y --no-install-recommends \ libpq5 \ wget \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip install --upgrade pip && pip install -r requirements.txt # Копируем код приложения в образ COPY app.py . # Не root в runtime (uid в образе python обычно есть) RUN useradd --create-home --uid 10001 appuser \ && mkdir -p /data/uploads \ && chown -R appuser:appuser /data /app USER appuser EXPOSE 5000 # Продакшен-сервер (не встроенный dev-сервер Flask) CMD ["gunicorn", "--bind", "0.0.0.0:5000", "--workers", "2", "app:app"]