- bot.py: добавить проверку sys.stdin.isatty() для консольного ввода - В Docker stdin не является терминалом, input() падал с EOFError - Консольный режим теперь запускается только в интерактивном терминале - Dockerfile: добавить console_commands/, убрать копирование .env, использовать переменные docker-compose
26 lines
811 B
Docker
26 lines
811 B
Docker
ARG PYTHON_VERSION=3.14
|
|
FROM python:${PYTHON_VERSION}-slim
|
|
|
|
WORKDIR /app
|
|
|
|
# Устанавливаем зависимости
|
|
COPY requirements.txt .
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Копируем только нужные файлы (оптимизация размера образа)
|
|
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 python -c "import discord; print('Bot is running')" || exit 1
|
|
|
|
# Запускаем бота
|
|
CMD ["python", "bot.py"]
|