diff --git a/Dockerfile b/Dockerfile index 6e96ded..1bffbd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,11 @@ 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) -COPY .env* .env 2>/dev/null || echo "No .env file - use docker-compose environment variables" +# .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 \ diff --git a/bot.py b/bot.py index c9e09f3..f0cb54d 100644 --- a/bot.py +++ b/bot.py @@ -118,16 +118,19 @@ def console_input(): if __name__ == "__main__": - print("Введите 'stop' для остановки бота") + token = os.getenv("DISCORD_TOKEN") + if not token: + print("Ошибка: токен не найден в .env") + sys.exit(1) - thread = threading.Thread(target=console_input, daemon=True) - thread.start() + # Консольный ввод работает только в интерактивном терминале + # В Docker stdin недоступен — пропускаем консольный режим + if sys.stdin.isatty(): + print("Введите 'stop' для остановки бота") + thread = threading.Thread(target=console_input, daemon=True) + thread.start() try: - token = os.getenv("DISCORD_TOKEN") - if not token: - print("Ошибка: токен не найден в .env") - sys.exit(1) bot.run(token) except KeyboardInterrupt: print("\nОстановка бота...")