Skip to content

Commit 7abed17

Browse files
committed
deploy fix
1 parent 3724236 commit 7abed17

File tree

1 file changed

+0
-23
lines changed

1 file changed

+0
-23
lines changed

deploy.sh

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,32 @@
11
#!/bin/bash
22

3-
# Скрипт для деплоя на VPS
4-
# Использование: ./deploy.sh [branch]
5-
# По умолчанию деплоится ветка master
6-
73
set -e
84

95
BRANCH=${1:-master}
106
APP_DIR=${VPS_APP_DIR:-$(pwd)}
117

128
echo "🚀 Starting deployment of branch: $BRANCH"
139

14-
# Переходим в директорию проекта
1510
cd "$APP_DIR" || {
1611
echo "❌ Directory $APP_DIR not found!"
1712
exit 1
1813
}
1914

20-
# Обновляем код из репозитория
21-
# (При запуске через GitHub Actions код уже обновлен, но повторное обновление безопасно)
2215
echo "📥 Fetching latest code..."
2316
git fetch origin
2417
git reset --hard "origin/$BRANCH"
2518
git clean -fd
2619

27-
# Проверяем наличие .env файла
2820
if [ ! -f .env ]; then
2921
echo "⚠️ Warning: .env file not found!"
3022
echo "Please create .env file before deployment."
3123
exit 1
3224
fi
3325

34-
# Останавливаем только приложение, НЕ базу данных (чтобы сохранить данные)
35-
# ВАЖНО: volumes объявлены в storages.yaml и должны сохраняться между деплоями
36-
# Используем прямой docker stop/rm для контейнера, чтобы избежать проблем с зависимостями
3726
echo "🛑 Stopping application container..."
3827
docker stop main-app 2>/dev/null || true
3928
docker rm main-app 2>/dev/null || true
4029

41-
# Проверяем, что volumes существуют (для отладки)
4230
echo "🔍 Checking volumes..."
4331
VOLUMES_EXIST=$(docker volume ls | grep -E "postgres_data|pgadmin_data" | wc -l)
4432
if [ "$VOLUMES_EXIST" -ge 2 ]; then
@@ -47,24 +35,17 @@ else
4735
echo "⚠️ Warning: Some volumes may not exist yet (will be created on first run)"
4836
fi
4937

50-
# Собираем и запускаем контейнеры
51-
# Сначала запускаем storages (postgres), затем приложение с обоими файлами
5238
echo "🔨 Building and starting containers..."
5339
docker compose -f docker_compose/storages.yaml --env-file .env up -d
54-
# Используем оба файла вместе, чтобы зависимости работали
55-
# postgres уже запущен, поэтому он не будет пересоздан
5640
echo "🔨 Building and starting application..."
5741
docker compose -f docker_compose/storages.yaml -f docker_compose/app.yaml --env-file .env up --build -d main-app
5842

59-
# Читаем переменные окружения из .env заранее
6043
DB_NAME=$(grep -E "^POSTGRES_DB=" .env 2>/dev/null | cut -d '=' -f2 | tr -d '"' | tr -d "'" || echo "organization_catalog")
6144
DB_USER=$(grep -E "^POSTGRES_USER=" .env 2>/dev/null | cut -d '=' -f2 | tr -d '"' | tr -d "'" || echo "postgres")
6245

63-
# Удаляем пробелы
6446
DB_NAME=$(echo "$DB_NAME" | xargs)
6547
DB_USER=$(echo "$DB_USER" | xargs)
6648

67-
# Ждем пока PostgreSQL будет готов
6849
echo "⏳ Waiting for PostgreSQL to be ready..."
6950
MAX_ATTEMPTS=30
7051
ATTEMPT=0
@@ -83,7 +64,6 @@ if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
8364
exit 1
8465
fi
8566

86-
# Создаем базу данных, если её нет
8767
echo "🔍 Checking if database '$DB_NAME' exists..."
8868
if ! docker exec postgres psql -U "$DB_USER" -lqt 2>/dev/null | cut -d \| -f 1 | grep -qw "$DB_NAME"; then
8969
echo "📦 Creating database '$DB_NAME'..."
@@ -94,17 +74,14 @@ else
9474
echo "✅ Database '$DB_NAME' already exists"
9575
fi
9676

97-
# Применяем миграции
9877
echo "📊 Running database migrations..."
9978
docker exec main-app alembic upgrade head || {
10079
echo "⚠️ Migration failed, but continuing..."
10180
}
10281

103-
# Очищаем старые Docker образы
10482
echo "🧹 Cleaning up old Docker images..."
10583
docker image prune -f
10684

107-
# Проверяем статус контейнеров
10885
echo "✅ Checking container status..."
10986
docker ps --filter "name=main-app" --format "table {{.Names}}\t{{.Status}}"
11087

0 commit comments

Comments
 (0)