FROM python:3.12-slim

LABEL maintainer="zont-exporter"

# Отключаем создание .pyc файлов и включаем небуферизованный вывод
ENV PYTHONDONTWRITEBYTECODE=1 \
    PYTHONUNBUFFERED=1

WORKDIR /app

# Устанавливаем зависимости
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Копируем исходный код
COPY zont_exporter.py .

# Создаём непривилегированного пользователя
RUN useradd -m -u 1000 exporter && chown -R exporter:exporter /app
USER exporter

# Открываем порт экспортера
EXPOSE 8000

# Healthcheck — проверяем, что /metrics отвечает
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
    CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/metrics').read()" || exit 1

CMD ["python", "zont_exporter.py"]