fix(install): LiveKit перезапускается при изменении конфига
LiveKit читает livekit.yaml только при старте, а compose не замечает правок в примонтированном файле — из-за этого вебхуки не включались после обновления. Установщик сравнивает sha256 конфига с сохранённым и перезапускает сервис.
This commit is contained in:
@@ -1491,6 +1491,26 @@ build_or_pull_image() {
|
||||
ok "образ собран: $(docker images --format '{{.Repository}}:{{.Tag}} {{.Size}}' "$APP_IMAGE" | head -1)"
|
||||
}
|
||||
|
||||
# restart_livekit_if_config_changed сравнивает хэш livekit.yaml с сохранённым и
|
||||
# перезапускает контейнер: иначе новые настройки (например вебхуки) не применятся.
|
||||
restart_livekit_if_config_changed() {
|
||||
local config="${TARGET_DIR}/livekit/livekit.yaml"
|
||||
local marker="${TARGET_DIR}/.livekit-config.sha256"
|
||||
[ -f "$config" ] || return 0
|
||||
local hash
|
||||
hash="$(sha256sum "$config" | awk '{print $1}')"
|
||||
if [ -f "$marker" ] && [ "$(cat "$marker")" = "$hash" ]; then
|
||||
return 0
|
||||
fi
|
||||
info "конфиг LiveKit изменился — перезапускаем сервис"
|
||||
if (cd "$TARGET_DIR" && docker compose -f compose.yaml restart livekit >/dev/null 2>&1); then
|
||||
printf '%s' "$hash" >"$marker"
|
||||
ok "LiveKit перезапущен с новым конфигом"
|
||||
else
|
||||
warn "не удалось перезапустить LiveKit: проверьте вручную (glchat restart livekit)"
|
||||
fi
|
||||
}
|
||||
|
||||
start_stack() {
|
||||
if [ "$SKIP_IMAGE" = "1" ]; then
|
||||
return 0
|
||||
@@ -1504,6 +1524,11 @@ start_stack() {
|
||||
[ "$PROXY_MODE" = "embedded" ] && compose_args+=(--profile embedded-proxy)
|
||||
(cd "$TARGET_DIR" && docker compose "${compose_args[@]}" pull --quiet 2>/dev/null || true)
|
||||
(cd "$TARGET_DIR" && docker compose "${compose_args[@]}" up -d --remove-orphans) || die "не удалось запустить стек"
|
||||
|
||||
# LiveKit читает конфиг только при старте, а compose не видит изменений в
|
||||
# примонтированном файле: перезапускаем сервис, если конфиг изменился.
|
||||
restart_livekit_if_config_changed
|
||||
|
||||
info "ожидаем готовности приложения"
|
||||
local waited=0
|
||||
until curl -fsS "http://127.0.0.1:${APP_PORT}/readyz" >/dev/null 2>&1; do
|
||||
|
||||
Reference in New Issue
Block a user