Files
play-life/run.sh
2026-02-08 17:01:36 +03:00

90 lines
3.5 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
# Скрипт для перезапуска уже настроенного приложения
# Использование: ./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"