2026-02-08 17:01:36 +03:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
|
|
# Скрипт для перезапуска уже настроенного приложения
|
|
|
|
|
|
# Использование: ./run.sh
|
|
|
|
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
2026-03-18 17:06:02 +03:00
|
|
|
|
# Включаем BuildKit для надёжного отслеживания изменений файлов
|
|
|
|
|
|
export DOCKER_BUILDKIT=1
|
|
|
|
|
|
export COMPOSE_DOCKER_CLI_BUILD=1
|
|
|
|
|
|
|
2026-02-08 17:01:36 +03:00
|
|
|
|
# Цвета для вывода
|
|
|
|
|
|
RED='\033[0;31m'
|
|
|
|
|
|
GREEN='\033[0;32m'
|
|
|
|
|
|
YELLOW='\033[1;33m'
|
|
|
|
|
|
BLUE='\033[0;34m'
|
|
|
|
|
|
NC='\033[0m' # No Color
|
|
|
|
|
|
|
|
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
|
|
cd "$SCRIPT_DIR"
|
|
|
|
|
|
|
|
|
|
|
|
# Проверка наличия .env файла (backend, web)
|
|
|
|
|
|
if [ ! -f ".env" ]; then
|
|
|
|
|
|
echo -e "${RED}❌ Файл .env не найден!${NC}"
|
|
|
|
|
|
echo " Создайте файл .env на основе env.example"
|
|
|
|
|
|
exit 1
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Загружаем переменные окружения
|
|
|
|
|
|
export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
|
|
|
|
|
|
|
|
|
|
|
|
# Значения по умолчанию
|
|
|
|
|
|
DB_USER=${DB_USER:-playeng}
|
|
|
|
|
|
DB_PASSWORD=${DB_PASSWORD:-playeng}
|
|
|
|
|
|
DB_NAME=${DB_NAME:-playeng}
|
|
|
|
|
|
DB_PORT=${DB_PORT:-5432}
|
|
|
|
|
|
PORT=${PORT:-8080}
|
|
|
|
|
|
WEB_PORT=${WEB_PORT:-3001}
|
|
|
|
|
|
|
|
|
|
|
|
echo -e "${GREEN}🔄 Перезапуск Play Life...${NC}"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
|
|
|
|
|
|
# Проверяем, запущены ли контейнеры
|
|
|
|
|
|
if docker-compose ps | grep -q "Up"; then
|
|
|
|
|
|
echo -e "${YELLOW}Перезапуск существующих контейнеров...${NC}"
|
|
|
|
|
|
echo " - Backend сервер (с пересборкой)"
|
|
|
|
|
|
echo " - Frontend приложение (с пересборкой)"
|
|
|
|
|
|
echo " - База данных"
|
2026-03-19 18:27:19 +03:00
|
|
|
|
# Пересобираем без кэша и перезапускаем
|
2026-03-18 17:06:02 +03:00
|
|
|
|
echo -e "${BLUE}Пересборка и перезапуск сервисов...${NC}"
|
2026-03-19 18:27:19 +03:00
|
|
|
|
docker-compose build --no-cache play-life-web backend
|
|
|
|
|
|
docker-compose up -d --force-recreate play-life-web backend
|
2026-02-08 17:01:36 +03:00
|
|
|
|
# Перезапускаем базу данных
|
|
|
|
|
|
docker-compose restart db
|
|
|
|
|
|
echo -e "${GREEN}✅ Контейнеры перезапущены${NC}"
|
|
|
|
|
|
else
|
|
|
|
|
|
echo -e "${YELLOW}Запуск контейнеров...${NC}"
|
|
|
|
|
|
echo " - База данных PostgreSQL 15 (порт: $DB_PORT)"
|
|
|
|
|
|
echo " - Backend сервер (порт: $PORT)"
|
|
|
|
|
|
echo " - Frontend приложение (порт: $WEB_PORT)"
|
2026-02-09 12:24:37 +03:00
|
|
|
|
docker-compose up -d --build --force-recreate db backend play-life-web
|
2026-02-08 17:01:36 +03:00
|
|
|
|
echo -e "${GREEN}✅ Контейнеры запущены${NC}"
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo -e "${BLUE}📋 Статус сервисов:${NC}"
|
|
|
|
|
|
docker-compose ps
|
|
|
|
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo -e "${GREEN}✅ Готово!${NC}"
|
|
|
|
|
|
echo ""
|
|
|
|
|
|
echo -e "${BLUE}ℹ️ Используются креденшелы из .env:${NC}"
|
|
|
|
|
|
echo " - DB_USER: $DB_USER"
|
|
|
|
|
|
echo " - DB_NAME: $DB_NAME"
|
|
|
|
|
|
echo " - DB_PORT: $DB_PORT (внешний порт)"
|
|
|
|
|
|
echo " - Внутри Docker-сети: DB_HOST=db, DB_PORT=5432"
|
|
|
|
|
|
|