FROM python:3.11-slim # Установка системных зависимостей для PostgreSQL и приложения RUN apt-get update && apt-get install -y \ build-essential \ curl \ git \ libpq-dev \ postgresql-client \ pkg-config \ && rm -rf /var/lib/apt/lists/* # Создание рабочей директории WORKDIR /app # Копирование файлов зависимостей COPY pyproject.toml ./ COPY requirements.txt ./ # Установка Python зависимостей RUN pip install --no-cache-dir -r requirements.txt # Копирование исходного кода COPY . . # Создание директорий для данных и логов RUN mkdir -p /app/data /app/logs # Создание пользователя для безопасности RUN groupadd -r myapp && useradd -r -g myapp myapp RUN chown -R myapp:myapp /app USER myapp # Порт приложения EXPOSE 8000 # Переменные окружения ENV PYTHONPATH=/app ENV PYTHONUNBUFFERED=1 ENV USE_FASTAPI=true # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost:8000/api/system/health || exit 1 # Команда запуска FastAPI с uvicorn CMD ["uvicorn", "app.fastapi_main:app", "--host", "0.0.0.0", "--port", "8000", "--workers", "1"]