Руководство по обновлению системы
В этом документе представлены методы обновления и лучшие практики для системы 88API, позволяющие обеспечить плавное обновление вашей системы до последней версии.
Подготовка перед обновлением
Перед обновлением системы рекомендуется выполнить следующие приготовления:
- Резервные данные: резервное копирование базы данных и важных файлов конфигурации.
- Просмотр журнала обновлений: последние обновления версий можно посмотреть на странице GitHub Releases.
- Проверьте совместимость: убедитесь, что новая версия совместима с существующими плагинами, интеграциями или пользовательскими конфигурациями.
- Выберите подходящее время: выполняйте обновления в периоды низкой нагрузки, чтобы снизить влияние на пользователей.
Метод обновления для развертывания Docker
Способ 1: обновление развертывания одного контейнера
Если вы развернули 88API с использованием одного контейнера Docker, вы можете выполнить обновление, выполнив следующие действия:
# Загрузите последнее изображение
docker pull calciumion/new-api:latest
# Остановитесь и удалите старый контейнер
docker stop new-api
docker rm new-api
# Перезапустите контейнер с теми же параметрами.
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /your/data/path:/data \
calciumion/new-api:latestпожалуйста, обратите внимание
Обязательно запустите новый контейнер с теми же параметрами, что и исходный контейнер, особенно с монтированием тома данных и конфигурацией переменных среды.
Способ 2: обновление с помощью Docker Compose
Если вы используете развертывание Docker Compose (см. Инструкции по настройке Docker Compose), процесс обновления проще:
# Введите каталог проекта
cd new-api
# Загрузите последнее изображение
docker compose pull
# Остановить и перезапустить службу
docker compose down
docker compose up -dИли используйте более краткую команду:
docker compose pull && docker compose down && docker compose up -dСпособ третий: используйте обновление панели 1Panel
Если вы используете развертывание панели 1Panel, вы можете выполнить обновление, выполнив следующие действия:
- Войдите в 1Panel и введите App Store -> Обновляемая страница.
- Найдите приложение 88API и нажмите кнопку Обновить.
- Выберите Целевая версия для обновления.
- Нажмите кнопку Подтвердить, и система автоматически загрузит последнюю версию приложения для обновления образа.
Способ 4: обновление с помощью панели Pagoda
Если вы выполняете развертывание с помощью Pagoda Panel, вы можете выполнить обновление, выполнив следующие действия:
- Войдите в панель Pagoda и введите Управление Docker -> Список контейнеров.
- Найдите контейнер 88API и нажмите Дополнительно -> Пересоздать.
- Установите флажок Извлечь последний образ и убедитесь, что другие конфигурации остались неизменными.
- Нажмите Отправить, и система автоматически получит последний образ и заново создаст контейнер.
Метод обновления, скомпилированный из исходного кода
Если вы скомпилировали и развернули 88API из исходного кода, шаги обновления будут следующими:
# Введите каталог проекта
cd new-api
# Загрузите последний код
git pull
# Скомпилировать серверную часть
go build -o new-api
# Обновите и скомпилируйте интерфейс
cd web
bun install
bun run build
cd ..
# Перезапустить службу
./new-api --port 3000Подробное руководство
Обновление стратегии для развертывания на нескольких узлах
Для сред развертывания с несколькими узлами рекомендуется следующая стратегия обновления:
- Сначала обновите ведомый узел: сначала обновите ведомый узел, чтобы проверить его стабильность.
- Постепенное улучшение: после подтверждения стабильности ведомого узла обновите оставшиеся ведомые узлы один за другим.
- Заключительно обновите главный узел: после того, как все подчиненные узлы будут работать стабильно, обновите главный узел.
Эта стратегия сводит к минимуму риск сбоя в обслуживании.
Полные инструкции по развертыванию кластера см. в [Документации по развертыванию кластера] (cluster-deployment.md).
Обновлены элементы проверки
После обновления системы проверьте следующее, чтобы убедиться, что система работает правильно:
- Доступ к интерфейсу управления: убедитесь, что вы можете войти в систему и получить доступ к интерфейсу управления в обычном режиме.
- Проверить журнал: проверьте системный журнал на наличие ошибок или предупреждений.
- Тестирование вызовов API. Проверьте некоторые вызовы API, чтобы убедиться в их функциональности.
- Проверьте миграцию базы данных. Убедитесь, что обновление структуры базы данных прошло успешно.
- Проверьте состояние канала: убедитесь, что все соединения каналов в порядке.
Откат версии
Если после обновления возникли проблемы, вы можете откатиться к предыдущей стабильной версии:
Откат Docker
# Извлеките конкретную версию изображения
docker pull calciumion/new-api:v1.x.x
# Остановить и удалить текущий контейнер
docker stop new-api
docker rm new-api
# Воссоздайте контейнер, используя образ старой версии.
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /your/data/path:/data \
calciumion/new-api:v1.x.xОткат исходного кода
# Введите каталог проекта
cd new-api
# Переключиться на конкретную версию
git checkout v1.x.x
# Перекомпилировать
go build -o new-api
# Обновите и скомпилируйте интерфейс
cd web
bun install
bun run build
cd ..
# Перезапустить службу
./new-api --port 3000Часто задаваемые вопросы
Невозможно запустить службу после обновления
- Проверьте журналы на наличие сообщений об ошибках.
- Подтвердите, нормально ли соединение с базой данных
- Убедитесь, что конфигурация переменной среды правильна.
Неисправность функции после обновления
- Проверьте, есть ли какие-либо изменения формата API.
- Проверьте, совпадают ли версии веб-интерфейса и серверной части.
- Подтвердите, требует ли новая версия дополнительной настройки.
Структура базы данных несовместима
- Проверьте журнал обновлений на наличие инструкций по миграции базы данных.
- Проверьте, нужно ли вам вручную выполнить сценарий миграции базы данных.
- Свяжитесь с разработчиком для получения инструкций по обновлению базы данных.
Инструмент автоматического обновления (используйте с осторожностью)
Для пользователей, которым нужны автоматические обновления, Watchtower можно использовать для автоматического обновления контейнеров:
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--run-once new-apiпожалуйста, обратите внимание
Автоматические обновления могут вызвать неожиданные проблемы, особенно при изменении структуры базы данных. Автоматические обновления рекомендуется использовать только в тестовых средах, а в производственных средах процесс обновления следует контролировать вручную.