Скрипт для обновления административных сервисов
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