фикс докера
This commit is contained in:
parent
c3d848153e
commit
3851baa38c
7 changed files with 55 additions and 6 deletions
|
|
@ -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)"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
|||
37
.env.example
37
.env.example
|
|
@ -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
|
||||
|
|
|
|||
14
Dockerfile
14
Dockerfile
|
|
@ -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"]
|
||||
|
|
|
|||
BIN
data/support.db
BIN
data/support.db
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue