2026-03-15 16:07:55 +03:00
|
|
|
# Test Install Container
|
|
|
|
|
|
2026-04-14 18:14:02 +03:00
|
|
|
Тестовый Docker-контейнер Ubuntu 24.04 для проверки установки XC_VM из `dist/XC_VM.zip`.
|
2026-03-15 16:07:55 +03:00
|
|
|
|
|
|
|
|
## Требования
|
|
|
|
|
|
|
|
|
|
- Docker + Docker Compose
|
|
|
|
|
- Собранный `dist/XC_VM.zip` (через `make main`)
|
|
|
|
|
|
2026-04-18 18:09:12 +03:00
|
|
|
## Структура
|
|
|
|
|
|
2026-04-21 21:48:10 +03:00
|
|
|
```text
|
2026-04-18 18:09:12 +03:00
|
|
|
tools/test-install/
|
2026-08-23 13:49:37 +03:00
|
|
|
├── Dockerfile # образ Ubuntu 24.04 + systemd + встроенный install-скрипт
|
|
|
|
|
├── docker-compose.yml # runtime-конфиг (volumes, ports, privileged, cgroup)
|
|
|
|
|
├── test_release.sh # управляющий скрипт (install / clean / logs / sync / streamtest*)
|
|
|
|
|
├── streamtest_in_container.sh # прогон стрим-теста внутри контейнера
|
|
|
|
|
├── STREAMTEST.md # инструкция по e2e стрим-тесту (ручная настройка → бэкап → прогон)
|
2026-04-18 18:09:12 +03:00
|
|
|
└── README.md
|
|
|
|
|
```
|
|
|
|
|
|
2026-03-15 16:07:55 +03:00
|
|
|
## Использование
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-04-18 18:09:12 +03:00
|
|
|
# Собрать образ, запустить контейнер и выполнить установку (всё сразу)
|
2026-03-15 16:07:55 +03:00
|
|
|
./tools/test-install/test_release.sh
|
|
|
|
|
|
2026-04-21 21:48:10 +03:00
|
|
|
# Запустить на нестандартном host-порту (пример: HTTP 18080, HTTPS 18443)
|
|
|
|
|
XCVM_HTTP_PORT=18080 XCVM_HTTPS_PORT=18443 ./tools/test-install/test_release.sh
|
|
|
|
|
|
|
|
|
|
# Задать нестандартные внутренние порты панели (те, что пишет install в nginx)
|
|
|
|
|
XCVM_INSTALL_HTTP_PORT=8081 XCVM_INSTALL_HTTPS_PORT=4443 ./tools/test-install/test_release.sh
|
|
|
|
|
|
|
|
|
|
# Комбинированно: внешние и внутренние порты одновременно
|
|
|
|
|
XCVM_HTTP_PORT=18080 XCVM_HTTPS_PORT=18443 XCVM_INSTALL_HTTP_PORT=8081 XCVM_INSTALL_HTTPS_PORT=4443 ./tools/test-install/test_release.sh
|
|
|
|
|
|
2026-04-18 18:09:12 +03:00
|
|
|
# Удалить контейнер и образ
|
|
|
|
|
./tools/test-install/test_release.sh clean
|
2026-03-15 16:07:55 +03:00
|
|
|
|
|
|
|
|
# Посмотреть лог установки
|
|
|
|
|
./tools/test-install/test_release.sh logs
|
|
|
|
|
|
2026-04-18 18:09:12 +03:00
|
|
|
# Синхронизировать src/ в работающий контейнер
|
|
|
|
|
./tools/test-install/test_release.sh sync
|
|
|
|
|
|
|
|
|
|
# Войти в контейнер вручную
|
|
|
|
|
docker exec -it xcvm-test-install bash
|
2026-03-15 16:07:55 +03:00
|
|
|
```
|
|
|
|
|
|
2026-08-23 13:49:37 +03:00
|
|
|
## Стрим-тест (e2e)
|
|
|
|
|
|
2026-09-06 11:11:10 +03:00
|
|
|
Сквозная проверка стриминга панели: генератор → рестрим панели → `stream_check.py`
|
2026-08-23 13:49:37 +03:00
|
|
|
(JSON-лог по каждому каналу). Панель настраивается один раз вручную, конфигурация
|
|
|
|
|
снимается в дамп БД и восстанавливается для повторяемых прогонов — без прямых
|
|
|
|
|
SQL-запросов. Полная инструкция: [STREAMTEST.md](STREAMTEST.md).
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
./tools/test-install/test_release.sh streamtest-gen # генератор для ручной настройки
|
|
|
|
|
./tools/test-install/test_release.sh streamtest-backup # снять дамп настроенной БД
|
|
|
|
|
./tools/test-install/test_release.sh streamtest # восстановить дамп и прогнать checker
|
|
|
|
|
```
|
|
|
|
|
|
2026-03-15 16:07:55 +03:00
|
|
|
## Что проверяется
|
|
|
|
|
|
2026-04-18 18:09:12 +03:00
|
|
|
Встроенный в Dockerfile install-скрипт:
|
2026-03-15 16:07:55 +03:00
|
|
|
|
|
|
|
|
1. Распаковывает `XC_VM.zip`
|
|
|
|
|
2. Запускает `python3 install` с автоматическими ответами на интерактивные вопросы
|
|
|
|
|
3. Проверяет наличие ключевых файлов после установки:
|
2026-08-07 21:03:57 +03:00
|
|
|
- `/home/xc_vm/console.php`, `vendor/autoload.php`, `bootstrap.php`
|
2026-03-15 16:07:55 +03:00
|
|
|
- `/home/xc_vm/config/config.ini`
|
|
|
|
|
- `/home/xc_vm/bin/nginx/sbin/nginx`
|
|
|
|
|
- `/home/xc_vm/bin/php/bin/php`
|
|
|
|
|
- `/home/xc_vm/bin/redis/redis-server`
|
|
|
|
|
|
|
|
|
|
## Порты
|
|
|
|
|
|
2026-04-21 21:48:10 +03:00
|
|
|
- `XCVM_HTTP_PORT` (по умолчанию `8880`) → container `XCVM_INSTALL_HTTP_PORT` (или `80`)
|
|
|
|
|
- `XCVM_HTTPS_PORT` (по умолчанию `8443`) → container `XCVM_INSTALL_HTTPS_PORT` (или `443`)
|
|
|
|
|
|
|
|
|
|
Внутренние порты, которые настраивает `install` в контейнере:
|
|
|
|
|
|
|
|
|
|
- `XCVM_INSTALL_HTTP_PORT` (по умолчанию пусто → `80`)
|
|
|
|
|
- `XCVM_INSTALL_HTTPS_PORT` (по умолчанию пусто → `443`)
|
|
|
|
|
|
|
|
|
|
Важно: маппинг target-порта теперь синхронизирован автоматически с `XCVM_INSTALL_HTTP_PORT`/`XCVM_INSTALL_HTTPS_PORT`.
|
2026-03-15 16:07:55 +03:00
|
|
|
|
|
|
|
|
## Примечания
|
|
|
|
|
|
2026-04-18 18:09:12 +03:00
|
|
|
- Контейнер запускается с `--privileged` и systemd (PID 1) — необходимо для `systemctl`
|
2026-03-15 16:07:55 +03:00
|
|
|
- MariaDB устанавливается и настраивается внутри контейнера
|