89
run.sh
Executable file
89
run.sh
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/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"
|
||||
|
||||
Reference in New Issue
Block a user