Files
play-life/run.sh

90 lines
3.5 KiB
Bash
Raw Normal View History

#!/bin/bash
# Скрипт для перезапуска уже настроенного приложения
# Использование: ./run.sh
set -e
# Цвета для вывода
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
# Создаём play-life-llm/.env из env.example при отсутствии (для сервиса llm)
if [ ! -f "play-life-llm/.env" ]; then
echo -e "${YELLOW}Создаём play-life-llm/.env из env.example...${NC}"
cp play-life-llm/env.example play-life-llm/.env
echo " Задайте TAVILY_API_KEY и OLLAMA_HOST (для Docker: http://host.docker.internal:11434) в play-life-llm/.env"
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 " - LLM сервис (с пересборкой)"
echo " - База данных"
# Пересобираем и перезапускаем веб-приложение
echo -e "${BLUE}Пересборка веб-приложения...${NC}"
docker-compose build --no-cache play-life-web
docker-compose up -d --force-recreate play-life-web
# Пересобираем и перезапускаем бэкенд
echo -e "${BLUE}Пересборка бэкенда...${NC}"
docker-compose build --no-cache backend
docker-compose up -d --force-recreate backend
# Пересобираем и перезапускаем LLM сервис
echo -e "${BLUE}Пересборка LLM сервиса...${NC}"
docker-compose build --no-cache llm
docker-compose up -d --force-recreate llm
# Перезапускаем базу данных
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)"
echo " - LLM сервис (порт: 8090)"
docker-compose up -d --build --force-recreate
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"