Скрипт для обновления административных сервисов

This commit is contained in:
2025-09-03 15:21:23 +03:00
parent 6ed60aef4f
commit 923334c2bd

85
updateService.sh Normal file
View File

@ -0,0 +1,85 @@
#!/bin/bash
# Функция вывода помощи
usage() {
echo "Использование: $0 service version"
echo " service - Указать обновляемый сервис: meshcentral, rustdesk или passbolt"
echo " version - Новая версия приложения"
exit 1
}
upgradeService() {
docker compose stop > /dev/null 2>&1
docker compose up -d > /dev/null 2>&1
}
upgradeOneService() {
local service="$1"
# Остановить контейнер приложения
docker compose stop $service > /dev/null 2>&1
# Запустить docker compose заново с обновлённым приложением
docker compose up -d $service > /dev/null 2>&1
}
if [[ $# -lt 2 ]]; then
usage
fi
# Принимаем новую версию как аргумент
NEW_VERSION="$2"
case "$1" in
'meshcentral')
cd /opt/docker/$1/ && sed -i.bak "s#typhonragewind/meshcentral:.*#typhonragewind/meshcentral:$NEW_VERSION#" docker-compose.yml
echo "Загрузка образа: MeshCentral:$NEW_VERSION"
if ! docker compose pull $1 > /dev/null 2>&1; then
echo 'Образ не найден.'
exit 1
fi
echo "Выполняется обновление приложения $1..."
upgradeOneService meshcentral
echo "Обновление приложения $1 до версии $NEW_VERSION выполнено."
;;
'rustdesk')
cd /opt/docker/$1/ && sed -i.bak "s#rustdesk/rustdesk-server:.*#rustdesk/rustdesk-server:$NEW_VERSION#" docker-compose.yml
echo "Загрузка образа: RustDesk:$NEW_VERSION"
if ! docker compose pull > /dev/null 2>&1; then
echo 'Образ не найден.'
exit 1
fi
echo "Выполняется обновление приложения $1..."
upgradeService
echo "Обновление приложения $1 до версии $NEW_VERSION выполнено."
;;
'passbolt')
cd /opt/docker/$1/ && sed -i.bak "s#passbolt/passbolt:.*#passbolt/passbolt:$NEW_VERSION#" docker-compose.yml
echo "Загрузка образа: Passbolt:$NEW_VERSION"
if ! docker compose pull $1 > /dev/null 2>&1; then
echo 'Образ не найден.'
exit 1
fi
echo "Выполняется обновление приложения $1..."
upgradeOneService passbolt
echo "Обновление приложения $1 до версии $NEW_VERSION выполнено."
;;
*)
usage
;;
esac
docker image prune -af > /dev/null 2>&1