Добавлен скрипт быстрой сборки deploy-simple.sh
This commit is contained in:
113
deploy-simple.sh
Executable file
113
deploy-simple.sh
Executable file
@@ -0,0 +1,113 @@
|
||||
#!/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:
|
||||
- traefik-public
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.global-it24.rule=Host(`${DOMAIN}`)"
|
||||
- "traefik.http.services.global-it24.loadbalancer.server.port=3000"
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
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:
|
||||
- traefik-public
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
networks:
|
||||
traefik-public:
|
||||
external: true
|
||||
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
|
||||
|
||||
# Удаляем временный файл
|
||||
rm docker-compose.simple.yml
|
||||
|
||||
# Ожидание готовности
|
||||
echo "⏳ Ожидание готовности сервиса..."
|
||||
sleep 10
|
||||
|
||||
# Проверка статуса
|
||||
if docker compose ps | grep -q "Up"; then
|
||||
echo "✅ Развертывание успешно завершено!"
|
||||
echo ""
|
||||
echo "📊 Статус контейнера:"
|
||||
docker compose ps
|
||||
echo ""
|
||||
echo "🌐 Сайт будет доступен по адресу: ${NEXT_PUBLIC_SITE_URL}"
|
||||
echo ""
|
||||
echo "📝 Для просмотра логов используйте: ./logs.sh"
|
||||
else
|
||||
echo "❌ Ошибка при запуске контейнера!"
|
||||
echo "📝 Логи:"
|
||||
docker compose logs
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user