Files
maintenance/updateCommunity.sh

84 lines
3.2 KiB
Bash
Raw Permalink 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
if [[ $# -lt 2 ]]; then
echo "Использование: $0 service version"
echo " service - Укзать обновляемый сервис: rocketchat или wekan"
echo " version - Новая версия приложения"
exit 1
fi
case "$1" in
'rocketchat')
# Принимаем новую версию как аргумент
NEW_VERSION="$2"
echo "Загрузка образа: rocket.chat:$NEW_VERSION"
if ! docker pull registry.rocket.chat/rocketchat/rocket.chat:$NEW_VERSION > /dev/null 2>&1; then
echo 'Образ не найден.'
exit 1
fi
# Путь к .env
cd /opt/docker/chat/
ENV_FILE=".env"
# Переменная в .env, отвечающая за версию приложения (например, APP_VERSION)
VERSION_VAR="RELEASE"
if [ -z "$NEW_VERSION" ]; then
echo "Ошибка: необходимо указать новую версию приложения в формате: ./update_app.sh <new_version>"
exit 1
fi
# Обновляем версию в файле .env
if grep -q "^$VERSION_VAR=" "$ENV_FILE"; then
sed -i.bak "s/^$VERSION_VAR=.*/$VERSION_VAR=$NEW_VERSION/" "$ENV_FILE"
else
# Если переменной нет, добавляем в конец файла
echo "$VERSION_VAR=$NEW_VERSION" >> "$ENV_FILE"
fi
echo "Версия приложения обновлена в $ENV_FILE: $VERSION_VAR=$NEW_VERSION"
# Остановить контейнер приложения
docker compose stop rocketchat
docker volume prune --force
# Удалить контейнер приложения и анонимные тома, связанные с ним
docker compose rm -fv -s rocketchat
# Запустить docker compose заново с обновлённым приложением
docker compose pull rocketchat
docker compose up -d rocketchat
echo "Обновление приложения $1 до версии $NEW_VERSION выполнено."
docker image prune -af > /dev/null 2>&1
;;
'wekan')
echo "Загрузка образа: wekan:$2"
if ! docker pull wekanteam/wekan:$2 > /dev/null 2>&1; then
echo 'Образ не найден.'
exit 1
fi
# Принимаем новую версию как аргумент
cd /opt/docker/board/ && sed -i.bak "s#wekanteam/wekan:.*#wekanteam/wekan:$2#" docker-compose.yml
# Остановить контейнер приложения
docker compose stop wekan
docker volume prune --force
# Удалить контейнер приложения и анонимные тома, связанные с ним
docker compose rm -fv -s wekan
# Запустить docker compose заново с обновлённым приложением
docker compose pull wekan
docker compose up -d wekan
echo "Обновление приложения $1 до версии $2 выполнено."
docker image prune -af > /dev/null 2>&1
;;
*)
echo -e "Необоходимо указать параметры <service: rocketchat или wekan> <version>\nИспользование: updateService wekan v7.84"
;;
esac