Скрипт для обновления административных сервисов
This commit is contained in:
85
updateService.sh
Normal file
85
updateService.sh
Normal 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
|
||||||
Reference in New Issue
Block a user