install: установка xvfb и ffmpeg из vendor/debs
This commit is contained in:
parent
ac88da4dfb
commit
890ed5fc93
|
|
@ -1,6 +1,6 @@
|
|||
# F7cloud Talk Recording — сборка для развёртывания
|
||||
|
||||
В репозитории собраны **все компоненты для работы сервиса, кроме Python**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Python, xvfb и ffmpeg вы должны заранее установить на целевой машине (скрипт `install` лишь проверяет их наличие и подсказывает, чего не хватает).
|
||||
В репозитории собраны **все компоненты для работы сервиса, кроме Python**. Firefox ESR и GeckoDriver скопированы с машины сборки в `vendor/` и при развёртывании на другом сервере просто копируются из репо в `/opt/firefox-esr` и `/usr/local/bin/geckodriver`. Пакеты **xvfb** и **ffmpeg** также включены в репозиторий в виде `.deb` (для Debian/Ubuntu) и при установке будут поставлены скриптом `install` из `vendor/debs/` при их отсутствии в системе. Python 3.12 вы должны установить на целевой машине самостоятельно.
|
||||
|
||||
## Структура
|
||||
|
||||
|
|
|
|||
29
install
29
install
|
|
@ -33,6 +33,33 @@ if ! command -v ffmpeg >/dev/null 2>&1; then
|
|||
NEED_FFMPEG=1
|
||||
fi
|
||||
|
||||
# Пытаемся доустановить xvfb и ffmpeg из vendor/debs, если они отсутствуют
|
||||
if [ "$NEED_XVFB" -eq 1 ]; then
|
||||
XVFB_DEB="$(ls "$REPO_ROOT"/vendor/debs/xvfb_*.deb 2>/dev/null | head -n1 || true)"
|
||||
if [ -n "$XVFB_DEB" ]; then
|
||||
echo "Xvfb не найден в системе. Устанавливаю из $XVFB_DEB ..."
|
||||
if dpkg -i "$XVFB_DEB"; then
|
||||
echo "Xvfb успешно установлен из vendor/debs."
|
||||
NEED_XVFB=0
|
||||
else
|
||||
echo "Не удалось установить Xvfb из $XVFB_DEB. Проверьте зависимости пакета." >&2
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$NEED_FFMPEG" -eq 1 ]; then
|
||||
FFMPEG_DEB="$(ls "$REPO_ROOT"/vendor/debs/ffmpeg_*.deb 2>/dev/null | head -n1 || true)"
|
||||
if [ -n "$FFMPEG_DEB" ]; then
|
||||
echo "ffmpeg не найден в системе. Устанавливаю из $FFMPEG_DEB ..."
|
||||
if dpkg -i "$FFMPEG_DEB"; then
|
||||
echo "ffmpeg успешно установлен из vendor/debs."
|
||||
NEED_FFMPEG=0
|
||||
else
|
||||
echo "Не удалось установить ffmpeg из $FFMPEG_DEB. Проверьте зависимости пакета." >&2
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$NEED_PYTHON" -eq 0 ] && [ "$NEED_XVFB" -eq 0 ] && [ "$NEED_FFMPEG" -eq 0 ]; then
|
||||
echo "Python 3.12, Xvfb и ffmpeg уже установлены — продолжаем установку."
|
||||
else
|
||||
|
|
@ -42,7 +69,7 @@ else
|
|||
[ "$NEED_FFMPEG" -eq 1 ] && echo " - ffmpeg"
|
||||
echo ""
|
||||
echo "Установите их любым доступным способом (apt, локальное зеркало, deb-пакеты и т.п.),"
|
||||
echo "затем перезапустите ./install. Сам скрипт install больше не вызывает apt-get."
|
||||
echo "затем перезапустите ./install. Сам скрипт install не вызывает apt-get."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
|
|
|||
5
vendor/README.md
vendored
5
vendor/README.md
vendored
|
|
@ -6,8 +6,9 @@
|
|||
|------------|------------|
|
||||
| **vendor/firefox-esr/** | Каталог Firefox ESR (бинарь `firefox` и библиотеки). При деплое копируется в `/opt/firefox-esr`, симлинк — в `/usr/local/bin/firefox-esr`. |
|
||||
| **vendor/geckodriver/geckodriver** | Бинарь GeckoDriver для Linux. При деплое копируется в `/usr/local/bin/geckodriver`. |
|
||||
| **xvfb, ffmpeg** | Не в репо — вы должны установить их на целевом сервере сами (apt, локальное зеркало и т.п.); `install` только проверяет наличие. |
|
||||
| **Python 3.12** | Не в репо — вы должны установить его на целевом сервере сами; `install` лишь проверяет наличие `python3.12`. |
|
||||
| **vendor/debs/xvfb\_*.deb** | Debian-пакет `xvfb` для установки Xvfb на целевой машине (`dpkg -i` вызывается из `install`, если Xvfb не найден). |
|
||||
| **vendor/debs/ffmpeg\_*.deb** | Debian-пакет `ffmpeg` для установки ffmpeg на целевой машине (`dpkg -i` вызывается из `install`, если ffmpeg не найден). |
|
||||
| **Python 3.12** | Не в репо — вы должны установить его на целевой машине сами; `install` лишь проверяет наличие `python3.12`. |
|
||||
|
||||
## Обновление vendor/ (новая машина сборки)
|
||||
|
||||
|
|
|
|||
BIN
vendor/debs/ffmpeg_7%3a6.1.1-3ubuntu5_amd64.deb
vendored
Normal file
BIN
vendor/debs/ffmpeg_7%3a6.1.1-3ubuntu5_amd64.deb
vendored
Normal file
Binary file not shown.
BIN
vendor/debs/xvfb_2%3a21.1.12-1ubuntu1.5_amd64.deb
vendored
Normal file
BIN
vendor/debs/xvfb_2%3a21.1.12-1ubuntu1.5_amd64.deb
vendored
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user