# Dockerfile для LogBoard клиента
# Автор: Сергей Антропов
# Сайт: https://devops.org.ru

FROM python:3.11-slim

# Установка метаданных
LABEL maintainer="Сергей Антропов <https://devops.org.ru>"
LABEL description="LogBoard клиент для отправки логов на удаленный сервер"
LABEL version="1.0"

# Установка системных зависимостей
RUN apt-get update && apt-get install -y \
    curl \
    && rm -rf /var/lib/apt/lists/*

# Создание пользователя для безопасности
RUN groupadd -r logboard && useradd -r -g logboard logboard

# Создание директорий
RUN mkdir -p /app /var/log
WORKDIR /app

# Копирование файлов зависимостей
COPY requirements.txt .

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

# Копирование исходного кода
COPY app/ ./app/

# Создание директории для логов
RUN mkdir -p /var/log && \
    chown -R logboard:logboard /app /var/log

# Переключение на пользователя logboard
USER logboard

# Проверка здоровья
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
    CMD curl -f http://localhost:8080/health || exit 1

# Команда запуска
CMD ["python", "app/main.py"]
