#!/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 файла 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 " - База данных" # Пересобираем и перезапускаем веб-сервер с новыми изменениями echo -e "${BLUE}Пересборка веб-приложения...${NC}" docker-compose build play-life-web docker-compose up -d play-life-web # Перезапускаем остальные сервисы docker-compose restart backend db echo -e "${GREEN}✅ Контейнеры перезапущены${NC}" else echo -e "${YELLOW}Запуск контейнеров...${NC}" echo " - База данных PostgreSQL 15 (порт: $DB_PORT)" echo " - Backend сервер (порт: $PORT)" echo " - Frontend приложение (порт: $WEB_PORT)" docker-compose up -d --build 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"