33 lines
1.0 KiB
Docker
33 lines
1.0 KiB
Docker
ARG PYTHON_VERSION=3.14
|
|
FROM python:${PYTHON_VERSION}-slim
|
|
|
|
ENV PYTHONUNBUFFERED=1
|
|
|
|
WORKDIR /app
|
|
|
|
# Директория для логов
|
|
RUN mkdir -p logs
|
|
|
|
# Устанавливаем зависимости и утилиту ps для healthcheck
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt && \
|
|
apt-get update && apt-get install -y --no-install-recommends procps && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# Копируем только нужные файлы (оптимизация размера образа)
|
|
COPY bot.py .
|
|
COPY commands/ commands/
|
|
COPY utils/ utils/
|
|
COPY console_commands/ console_commands
|
|
|
|
# .env передаётся через docker-compose environment:
|
|
# DISCORD_TOKEN=${DISCORD_TOKEN}
|
|
# MORNING_TIME=${MORNING_TIME:-07:00}
|
|
|
|
# Healthcheck: проверяем, что процесс бота жив
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
|
|
CMD ps aux | grep -v grep | grep -q "python bot.py" || exit 1
|
|
|
|
# Запускаем бота
|
|
CMD ["python", "bot.py"]
|