#!/bin/bash # Простой скрипт развертывания с упрощенным Dockerfile # Использование: ./deploy-simple.sh set -e echo "🚀 Быстрое развертывание Global-IT24 (упрощенный режим)..." # Проверка наличия .env файла if [ ! -f .env ]; then echo "⚠️ Файл .env не найден. Создаю из .env.example..." cp .env.example .env echo "📝 Отредактируйте файл .env и запустите скрипт снова." exit 1 fi # Загрузка переменных окружения source .env # Проверка APP_HOST_IP if [ -z "$APP_HOST_IP" ] || [ "$APP_HOST_IP" = "192.168.50.X" ]; then echo "⚠️ Пожалуйста, укажите APP_HOST_IP в файле .env" exit 1 fi # Остановка предыдущей версии echo "🛑 Остановка предыдущей версии..." docker compose down 2>/dev/null || true # Сборка с упрощенным Dockerfile echo "⚡ Быстрая сборка с упрощенным Dockerfile (15-20 минут)..." echo "💡 Используется Dockerfile.simple - проще и быстрее для первой сборки" # Создаем временный docker-compose файл с Dockerfile.simple cat > docker-compose.simple.yml << 'EOFCOMPOSE' services: web: build: context: . dockerfile: Dockerfile.simple args: NEXT_PUBLIC_SITE_URL: ${NEXT_PUBLIC_SITE_URL:-http://localhost:3000} container_name: global_it24_web restart: unless-stopped env_file: - .env ports: - "3000:3000" networks: - app-network depends_on: db: condition: service_healthy db: image: postgres:15-alpine container_name: global_it24_db restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-global_it24} POSTGRES_USER: ${POSTGRES_USER:-postgres} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme} volumes: - postgres_data:/var/lib/postgresql/data networks: - app-network healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] interval: 10s timeout: 5s retries: 5 volumes: postgres_data: networks: app-network: driver: bridge EOFCOMPOSE # Сборка и запуск export DOCKER_BUILDKIT=1 export COMPOSE_DOCKER_CLI_BUILD=1 docker compose -f docker-compose.simple.yml build docker compose -f docker-compose.simple.yml up -d # Ожидание готовности echo "⏳ Ожидание готовности сервиса..." sleep 10 # Проверка статуса if docker compose -f docker-compose.simple.yml ps | grep -q "Up"; then echo "✅ Развертывание успешно завершено!" echo "" echo "📊 Статус контейнеров:" docker compose -f docker-compose.simple.yml ps echo "" echo "🌐 Сайт доступен по адресу: http://localhost:3000" echo "🌐 Внешний доступ через Traefik: ${NEXT_PUBLIC_SITE_URL}" echo "" echo "📝 Для просмотра логов: docker compose -f docker-compose.simple.yml logs -f" echo "📝 Для остановки: docker compose -f docker-compose.simple.yml down" echo "" echo "⚠️ Не удаляйте файл docker-compose.simple.yml - он нужен для управления контейнерами!" else echo "❌ Ошибка при запуске контейнера!" echo "📝 Логи:" docker compose -f docker-compose.simple.yml logs exit 1 fi