# ═══════════════════════════════════════════════════════════════════════ # ROCK-RELAY PROXY v7.0 — DOCKERFILE (МАКСИМАЛЬНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ) # ═══════════════════════════════════════════════════════════════════════ # 1. МНОГОСТАДИЙНАЯ СБОРКА (оптимизация размера) FROM python:3.11-slim-bookworm AS builder # 2. УСТАНОВКА СИСТЕМНЫХ ЗАВИСИМОСТЕЙ RUN apt-get update && apt-get install -y \ curl \ wget \ gcc \ g++ \ make \ libffi-dev \ libssl-dev \ libjpeg-dev \ zlib1g-dev \ && rm -rf /var/lib/apt/lists/* # 3. УСТАНОВКА PYTHON-ЗАВИСИМОСТЕЙ WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir --upgrade pip setuptools wheel && \ pip install --no-cache-dir -r requirements.txt && \ pip install --no-cache-dir gunicorn==22.0.0 gevent==25.4.1 # 4. ФИНАЛЬНЫЙ ОБРАЗ (чистый и лёгкий) FROM python:3.11-slim-bookworm # 5. УСТАНОВКА ТОЛЬКО НЕОБХОДИМЫХ СИСТЕМНЫХ БИБЛИОТЕК RUN apt-get update && apt-get install -y \ curl \ ca-certificates \ && rm -rf /var/lib/apt/lists/* # 6. КОПИРУЕМ ЗАВИСИМОСТИ ИЗ BUILDER WORKDIR /app COPY --from=builder /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages COPY --from=builder /usr/local/bin/gunicorn /usr/local/bin/gunicorn # 7. КОПИРУЕМ КОД COPY app.py . COPY entrypoint.sh . # 8. НАСТРОЙКА ПРАВ RUN chmod +x entrypoint.sh # 9. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЯ (безопасность) RUN useradd -m -u 1000 relayuser && chown -R relayuser:relayuser /app USER relayuser # 10. ЭКСПОРТ ПОРТА EXPOSE 7860 # 11. ТОЧКА ВХОДА ENTRYPOINT ["./entrypoint.sh"] # 12. ЗАПУСК (по умолчанию — production) CMD ["--workers", "4", "--threads", "2", "--worker-class", "gthread", "--timeout", "60"]