version: '3.8' # Указываем версию Docker Compose services: daily-digest-worker: # Имя нашего сервиса (может быть любым) build: . # Раскомментируйте, если Portainer будет САМ собирать образ из Dockerfile # image: your-dockerhub-username/daily-digest-worker:latest # <-- ЗАМЕНИТЕ на ваше имя образа (или оставьте build) container_name: daily-digest-worker # Имя контейнера после запуска restart: unless-stopped # Перезапускать контейнер, если он остановился сам (кроме ручной остановки) environment: # --- ПЕРЕДАЧА СЕКРЕТОВ И НАСТРОЕК ЧЕРЕЗ ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ --- # Формат: Section__NestedSection__Key=Value # Замените YOUR_... на ваши реальные значения! # Настройки бота BotConfiguration__BotToken: "7370439998:AAFKMvzbkv3Vh-E477De7_QKrTCQblI7wlc" BotConfiguration__TargetChatId: "-1002642759581" # Например, -1001234567890 # Настройки Client API Telegram TelegramClient__ApiId: "11104889" # Должно быть числом, но передаем как строку TelegramClient__ApiHash: "81f467fd132d401fe69eaf45ae4275eb" TelegramClient__PhoneNumber: "+79069302883" # Например, +79123456789 TelegramClient__TargetChannelUsername: "topor" TelegramClient__SessionPath: "/app/session/telegram_session.dat" # <-- Путь ВНУТРИ контейнера (см. volumes) # Ключи API ApiKeys__OpenWeatherMap: "1425466ae8a0a723bd3300526ced0fff" ApiKeys__Gemini: "AIzaSyClYI2zhYbAZgtT300JHAfYjIiyxrMV6W8" # Настройки планировщика (если не хотите менять appsettings.json в образе) # Можно переопределить массив JSON через переменную окружения, но это сложнее. # Проще оставить в appsettings.json или использовать Config Map, если Portainer поддерживает. # Либо использовать переменные для КАЖДОГО времени, но это не гибко. # Настройки логирования и прочие (можно переопределить при необходимости) Logging__LogLevel__Default: "Information" DOTNET_ENVIRONMENT: "Production" # Устанавливаем окружение как Production volumes: # Создаем или используем именованный том 'session_data' для хранения файла сессии Telegram # Это КЛЮЧЕВОЙ момент, чтобы не проходить авторизацию Client API при каждом перезапуске контейнера! - session_data:/app/session # Монтируем том 'session_data' в папку /app/session внутри контейнера volumes: # Объявляем именованный том session_data: