Files
maintenance/updateService.sh

85 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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