Вынос play-life-llm в отдельный скрипт runLLM.sh
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 21s

This commit is contained in:
poignatov
2026-02-09 12:24:37 +03:00
parent 9345b5ab5c
commit b05bd51b5b
7 changed files with 74 additions and 16 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@@ -14,6 +14,13 @@
"type": "shell", "type": "shell",
"cwd": "${workspaceFolder}" "cwd": "${workspaceFolder}"
}, },
{
"name": "runLLM",
"description": "Запуск/перезапуск play-life-llm (обычно на отдельной машине)",
"command": "./runLLM.sh",
"type": "shell",
"cwd": "${workspaceFolder}"
},
{ {
"name": "backupFromProd", "name": "backupFromProd",
"description": "Создание дампа базы данных с продакшена", "description": "Создание дампа базы данных с продакшена",

View File

@@ -13,4 +13,6 @@ alwaysApply: true
- React компонентами и стилями в `play-life-web/src/` - React компонентами и стилями в `play-life-web/src/`
- Docker конфигурациями (`docker-compose.yml`, `Dockerfile`) - Docker конфигурациями (`docker-compose.yml`, `Dockerfile`)
**Команда для перезапуска:** `./run.sh` или `bash run.sh` в корне проекта. При изменениях в `play-life-llm/` (если LLM запущен на этой машине) выполни `./runLLM.sh`.
**Команды для перезапуска:** `./run.sh` (web + backend + db) или `bash run.sh` в корне проекта. Для LLM на этой машине: `./runLLM.sh`.

19
.vscode/tasks.json vendored
View File

@@ -39,6 +39,25 @@
"problemMatcher": [], "problemMatcher": [],
"detail": "Перезапуск Play Life: перезапуск всех контейнеров" "detail": "Перезапуск Play Life: перезапуск всех контейнеров"
}, },
{
"label": "runLLM",
"type": "shell",
"command": "./runLLM.sh",
"group": {
"kind": "build",
"isDefault": false
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
},
"problemMatcher": [],
"detail": "Запуск/перезапуск play-life-llm (обычно на отдельной машине)"
},
{ {
"label": "backupFromProd", "label": "backupFromProd",
"type": "shell", "type": "shell",

View File

@@ -47,12 +47,12 @@ docker images | grep -E "postgres:(15|16|17|18|latest)" | awk '{print $3}' | xar
echo -e "${GREEN} ✅ Старые образы postgres удалены${NC}" echo -e "${GREEN} ✅ Старые образы postgres удалены${NC}"
echo "" echo ""
# 2. Поднятие всех сервисов # 2. Поднятие сервисов (без LLM — он обычно на отдельной машине, см. ./runLLM.sh)
echo -e "${YELLOW}2. Поднятие сервисов через Docker Compose...${NC}" echo -e "${YELLOW}2. Поднятие сервисов через Docker Compose...${NC}"
echo " - База данных PostgreSQL 18.0 (порт: $DB_PORT)" echo " - База данных PostgreSQL 18.0 (порт: $DB_PORT)"
echo " - Backend сервер (порт: $PORT)" echo " - Backend сервер (порт: $PORT)"
echo " - Frontend приложение (порт: $WEB_PORT)" echo " - Frontend приложение (порт: $WEB_PORT)"
docker-compose up -d --build docker-compose up -d --build db backend play-life-web
echo -e "${GREEN} ✅ Сервисы запущены${NC}" echo -e "${GREEN} ✅ Сервисы запущены${NC}"
echo "" echo ""

14
run.sh
View File

@@ -21,12 +21,6 @@ if [ ! -f ".env" ]; then
echo " Создайте файл .env на основе env.example" echo " Создайте файл .env на основе env.example"
exit 1 exit 1
fi 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) export $(cat .env | grep -v '^#' | grep -v '^$' | xargs)
@@ -47,7 +41,6 @@ if docker-compose ps | grep -q "Up"; then
echo -e "${YELLOW}Перезапуск существующих контейнеров...${NC}" echo -e "${YELLOW}Перезапуск существующих контейнеров...${NC}"
echo " - Backend сервер (с пересборкой)" echo " - Backend сервер (с пересборкой)"
echo " - Frontend приложение (с пересборкой)" echo " - Frontend приложение (с пересборкой)"
echo " - LLM сервис (с пересборкой)"
echo " - База данных" echo " - База данных"
# Пересобираем и перезапускаем веб-приложение # Пересобираем и перезапускаем веб-приложение
echo -e "${BLUE}Пересборка веб-приложения...${NC}" echo -e "${BLUE}Пересборка веб-приложения...${NC}"
@@ -57,10 +50,6 @@ if docker-compose ps | grep -q "Up"; then
echo -e "${BLUE}Пересборка бэкенда...${NC}" echo -e "${BLUE}Пересборка бэкенда...${NC}"
docker-compose build --no-cache backend docker-compose build --no-cache backend
docker-compose up -d --force-recreate 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 docker-compose restart db
echo -e "${GREEN}✅ Контейнеры перезапущены${NC}" echo -e "${GREEN}✅ Контейнеры перезапущены${NC}"
@@ -69,8 +58,7 @@ else
echo " - База данных PostgreSQL 15 (порт: $DB_PORT)" echo " - База данных PostgreSQL 15 (порт: $DB_PORT)"
echo " - Backend сервер (порт: $PORT)" echo " - Backend сервер (порт: $PORT)"
echo " - Frontend приложение (порт: $WEB_PORT)" echo " - Frontend приложение (порт: $WEB_PORT)"
echo " - LLM сервис (порт: 8090)" docker-compose up -d --build --force-recreate db backend play-life-web
docker-compose up -d --build --force-recreate
echo -e "${GREEN}✅ Контейнеры запущены${NC}" echo -e "${GREEN}✅ Контейнеры запущены${NC}"
fi fi

42
runLLM.sh Executable file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
# Скрипт для запуска play-life-llm (обычно на отдельной машине)
# Использование: ./runLLM.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"
# Создаём play-life-llm/.env из env.example при отсутствии
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
echo -e "${GREEN}🔄 Запуск play-life-llm...${NC}"
echo ""
if docker-compose ps llm 2>/dev/null | grep -q "Up"; then
echo -e "${YELLOW}Перезапуск LLM сервиса (с пересборкой)...${NC}"
docker-compose build --no-cache llm
docker-compose up -d --force-recreate llm
else
echo -e "${YELLOW}Запуск LLM сервиса (порт: 8090)...${NC}"
docker-compose up -d --build llm
fi
echo -e "${GREEN}✅ play-life-llm запущен${NC}"
echo ""
echo -e "${BLUE}📋 Статус:${NC}"
docker-compose ps llm
echo ""
echo -e "${GREEN}✅ Готово!${NC}"