фикс докера

This commit is contained in:
dv 2026-04-07 13:44:54 +03:00
parent c3d848153e
commit 3851baa38c
7 changed files with 55 additions and 6 deletions

View file

@ -13,7 +13,9 @@
"Bash(find C:UsersProfessionalAppDataLocalProgramsPythonPython313Libsite-packagesmaxapi -name command.py -o -name *command*)",
"Bash(python -m py_compile bot/texts.py bot/flow_config.py bot/keyboards.py bot/handlers/start.py bot/handlers/create_ticket.py bot/handlers/view_tickets.py bot/handlers/menu.py)",
"Bash(pip show:*)",
"Bash(python -c \"import ast, pathlib; errors = [f''{p}: {e}'' for p in pathlib.Path\\(''bot''\\).rglob\\(''*.py''\\) for e in [None] if not \\(lambda: ast.parse\\(p.read_text\\(encoding=''utf-8''\\)\\)\\)\\(\\)]; print\\(''OK''\\)\")"
"Bash(python -c \"import ast, pathlib; errors = [f''{p}: {e}'' for p in pathlib.Path\\(''bot''\\).rglob\\(''*.py''\\) for e in [None] if not \\(lambda: ast.parse\\(p.read_text\\(encoding=''utf-8''\\)\\)\\)\\(\\)]; print\\(''OK''\\)\")",
"Bash(find /c/Users/Professional/Documents/VSCode/support_bot -type d -not -path */.* -not -path */__pycache__* -not -path */data/*)",
"Bash(wc -l /c/Users/Professional/Documents/VSCode/support_bot/**/*.py)"
]
}
}

View file

@ -1,19 +1,50 @@
# ── Telegram Bot ──────────────────────────────────────────────────────────────
MAX_BOT_TOKEN=your_token_here
# ── База данных ────────────────────────────────────────────────────────────────
# При локальном запуске (python main.py):
DB_PATH=data/support.db
# При запуске через Docker DB_PATH переопределяется в docker-compose.yml
# и указывает на /app/data/support.db (volume ./data/)
# ── Админ-панель ───────────────────────────────────────────────────────────────
ADMIN_USERNAME=admin
ADMIN_PASSWORD=changeme
ADMIN_HOST=0.0.0.0
ADMIN_PORT=8080
# Intradesk API
# ── Intradesk API ──────────────────────────────────────────────────────────────
INTRADESK_BASE_URL=https://apigw.intradesk.ru
# Ключ для /settings/odata (клиенты, пользователи)
INTRADESK_API_KEY=your_settings_api_key
# Ключ для /tasklist/odata (чтение заявок) и /taskhistory (история/комментарии)
INTRADESK_TASKS_API_KEY=your_tasks_api_key
# Ключ для /changes/v3/tasks (создание и изменение заявок)
INTRADESK_CHANGES_API_KEY=your_changes_api_key
# Путь сервиса для новых заявок (Настройки → Сервисы → «Путь сервиса», напр. "84681/84683/")
INTRADESK_DEFAULT_SERVICE=
# ID типа заявки по умолчанию (Настройки → Заявки → Типы заявок → ID)
INTRADESK_DEFAULT_TASK_TYPE=
# ID статуса «Выполнена» для кнопки «Закрыть заявку» (Настройки → Справочники → Статусы → ID)
INTRADESK_CLOSE_STATUS_ID=
# ── Уведомления ────────────────────────────────────────────────────────────────
# Интервал опроса Intradesk для push-уведомлений, секунды (0 — отключить)
NOTIFICATION_POLL_INTERVAL=120
# ── Фильтрация заявок ──────────────────────────────────────────────────────────
# ID группы исполнителей (0 = все группы)
INTRADESK_EXECUTOR_GROUP=0
INTRADESK_EXECUTORS=id1,id2,id3
# Список ID исполнителей через запятую (пусто = все исполнители)
INTRADESK_EXECUTORS=
# ── Прочее ────────────────────────────────────────────────────────────────────
# Dry-run: не писать в Intradesk, только выводить payload в консоль
DRY_RUN=false

View file

@ -1,7 +1,12 @@
FROM python:3.11-slim
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
# curl нужен для healthcheck
RUN apt-get update \
&& apt-get install -y --no-install-recommends curl \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
@ -14,4 +19,9 @@ RUN mkdir -p /app/data
EXPOSE 8080
# Проверяем, что admin-панель отвечает (401 = нормально, требует авторизацию)
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD curl -sf -o /dev/null -w "%{http_code}" http://localhost:8080/admin/ \
| grep -qE "^(200|301|302|401)" || exit 1
CMD ["python", "main.py"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,6 +1,7 @@
services:
support_bot:
build: .
container_name: support_bot
env_file: .env
environment:
DB_PATH: /app/data/support.db
@ -10,3 +11,8 @@ services:
volumes:
- ./data:/app/data
restart: unless-stopped
logging:
driver: json-file
options:
max-size: "10m"
max-file: "5"