docker fix
This commit is contained in:
55
bin/apply_migrations.sh
Normal file
55
bin/apply_migrations.sh
Normal file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
# apply_migrations.sh - Скрипт для ручного применения миграций
|
||||
|
||||
echo "🔄 Ручное применение миграций базы данных..."
|
||||
|
||||
# Загрузка переменных окружения из .env
|
||||
if [ -f .env ]; then
|
||||
echo "📝 Загрузка переменных окружения из .env..."
|
||||
export $(grep -v '^#' .env | xargs)
|
||||
else
|
||||
echo "⚠️ Файл .env не найден, используем значения по умолчанию"
|
||||
export DB_HOST="localhost"
|
||||
export DB_PORT="5432"
|
||||
export DB_NAME="telegram_tinder_bot"
|
||||
export DB_USERNAME="postgres"
|
||||
export DB_PASSWORD="postgres"
|
||||
fi
|
||||
|
||||
# Проверка на существование директории миграций
|
||||
if [ ! -d "migrations" ] && [ ! -d "src/database/migrations" ]; then
|
||||
echo "❌ Не найдены директории с миграциями!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Вывод информации о подключении
|
||||
echo "🔍 Используемые параметры подключения:"
|
||||
echo "DB_HOST: $DB_HOST"
|
||||
echo "DB_PORT: $DB_PORT"
|
||||
echo "DB_NAME: $DB_NAME"
|
||||
echo "DB_USERNAME: $DB_USERNAME"
|
||||
echo "DB_PASSWORD: ********"
|
||||
|
||||
# Проверка подключения к базе данных
|
||||
echo "🔍 Проверка подключения к базе данных..."
|
||||
if command -v pg_isready >/dev/null; then
|
||||
pg_isready -h $DB_HOST -p $DB_PORT -U $DB_USERNAME
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "❌ Не удалось подключиться к базе данных!"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Утилита pg_isready не найдена, пропускаем проверку"
|
||||
fi
|
||||
|
||||
# Применение миграций
|
||||
echo "🔄 Применение миграций с помощью node-pg-migrate..."
|
||||
DATABASE_URL="postgres://$DB_USERNAME:$DB_PASSWORD@$DB_HOST:$DB_PORT/$DB_NAME" npx node-pg-migrate up
|
||||
|
||||
# Проверка результата
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "✅ Миграции успешно применены!"
|
||||
else
|
||||
echo "❌ Ошибка при применении миграций!"
|
||||
exit 1
|
||||
fi
|
||||
100
bin/fix_docker.bat
Normal file
100
bin/fix_docker.bat
Normal file
@@ -0,0 +1,100 @@
|
||||
@echo off
|
||||
REM fix_docker.bat - Скрипт для устранения проблемы ContainerConfig в Windows
|
||||
|
||||
echo 🔧 Устранение проблемы с Docker контейнерами...
|
||||
|
||||
REM Остановка всех контейнеров проекта
|
||||
echo 📥 Остановка всех контейнеров проекта...
|
||||
docker-compose down -v
|
||||
|
||||
REM Принудительное удаление контейнеров по имени
|
||||
echo 🗑️ Принудительное удаление оставшихся контейнеров...
|
||||
docker rm -f postgres-tinder adminer-tinder telegram-tinder-bot 2>NUL
|
||||
|
||||
REM Очистка неиспользуемых томов и сетей
|
||||
echo 🧹 Очистка неиспользуемых томов и сетей...
|
||||
docker system prune -f --volumes
|
||||
|
||||
REM Очистка кеша Docker
|
||||
echo 🧼 Очистка кеша Docker...
|
||||
docker builder prune -f
|
||||
|
||||
REM Исправление docker-compose.yml
|
||||
echo 📝 Создание обновленного docker-compose.yml...
|
||||
|
||||
REM Создаем обновленный docker-compose.yml с использованием PowerShell
|
||||
powershell -Command "& {
|
||||
$content = @'
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
bot:
|
||||
build: .
|
||||
container_name: telegram-tinder-bot
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- DB_HOST=${DB_HOST:-db}
|
||||
- DB_PORT=${DB_PORT:-5432}
|
||||
- DB_NAME=${DB_NAME:-telegram_tinder_bot}
|
||||
- DB_USERNAME=${DB_USERNAME:-postgres}
|
||||
- DB_PASSWORD=${DB_PASSWORD:-postgres}
|
||||
volumes:
|
||||
- ./uploads:/app/uploads:rw
|
||||
- ./logs:/app/logs:rw
|
||||
networks:
|
||||
- bot-network
|
||||
healthcheck:
|
||||
test: [\"CMD\", \"wget\", \"--no-verbose\", \"--tries=1\", \"--spider\", \"http://localhost:3000/health\"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
container_name: postgres-tinder
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_DB=${DB_NAME:-telegram_tinder_bot}
|
||||
- POSTGRES_USER=${DB_USERNAME:-postgres}
|
||||
- POSTGRES_PASSWORD=${DB_PASSWORD:-postgres}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
ports:
|
||||
- \"5433:5432\"
|
||||
networks:
|
||||
- bot-network
|
||||
healthcheck:
|
||||
test: [\"CMD-SHELL\", \"pg_isready -U ${DB_USERNAME:-postgres} -d ${DB_NAME:-telegram_tinder_bot}\"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
|
||||
adminer:
|
||||
image: adminer:latest
|
||||
container_name: adminer-tinder
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- \"8080:8080\"
|
||||
networks:
|
||||
- bot-network
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
networks:
|
||||
bot-network:
|
||||
driver: bridge
|
||||
'@
|
||||
Set-Content -Path 'docker-compose.yml' -Value $content
|
||||
}"
|
||||
|
||||
echo ✅ docker-compose.yml обновлен!
|
||||
|
||||
echo 🚀 Готово! Теперь вы можете запустить контейнеры снова с помощью команды:
|
||||
echo docker-compose up -d
|
||||
|
||||
pause
|
||||
117
bin/fix_docker.sh
Normal file
117
bin/fix_docker.sh
Normal file
@@ -0,0 +1,117 @@
|
||||
#!/bin/bash
|
||||
# fix_docker.sh - Скрипт для устранения проблемы ContainerConfig
|
||||
|
||||
echo "🔧 Устранение проблемы с Docker контейнерами..."
|
||||
|
||||
# Остановка всех контейнеров проекта
|
||||
echo "📥 Остановка всех контейнеров проекта..."
|
||||
docker-compose down -v
|
||||
|
||||
# Принудительное удаление контейнеров по имени
|
||||
echo "🗑️ Принудительное удаление оставшихся контейнеров..."
|
||||
docker rm -f postgres-tinder adminer-tinder telegram-tinder-bot 2>/dev/null || true
|
||||
|
||||
# Очистка неиспользуемых томов и сетей
|
||||
echo "🧹 Очистка неиспользуемых томов и сетей..."
|
||||
docker system prune -f --volumes
|
||||
|
||||
# Очистка кеша Docker
|
||||
echo "🧼 Очистка кеша Docker..."
|
||||
docker builder prune -f
|
||||
|
||||
# Исправление docker-compose.yml
|
||||
echo "📝 Создание обновленного docker-compose.yml..."
|
||||
|
||||
cat > docker-compose.yml << EOL
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
bot:
|
||||
build: .
|
||||
container_name: telegram-tinder-bot
|
||||
restart: unless-stopped
|
||||
env_file: .env
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- DB_HOST=${DB_HOST:-db}
|
||||
- DB_PORT=${DB_PORT:-5432}
|
||||
- DB_NAME=${DB_NAME:-telegram_tinder_bot}
|
||||
- DB_USERNAME=${DB_USERNAME:-postgres}
|
||||
- DB_PASSWORD=${DB_PASSWORD:-postgres}
|
||||
volumes:
|
||||
- ./uploads:/app/uploads:rw
|
||||
- ./logs:/app/logs:rw
|
||||
networks:
|
||||
- bot-network
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000/health"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 3
|
||||
start_period: 10s
|
||||
EOL
|
||||
|
||||
# Если используем внешнюю базу данных, добавляем только adminer
|
||||
if [ "${DB_HOST:-db}" != "db" ]; then
|
||||
cat >> docker-compose.yml << EOL
|
||||
|
||||
adminer:
|
||||
image: adminer:latest
|
||||
container_name: adminer-tinder
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:8080"
|
||||
networks:
|
||||
- bot-network
|
||||
EOL
|
||||
else
|
||||
# Если используем локальную базу данных, добавляем PostgreSQL и adminer
|
||||
cat >> docker-compose.yml << EOL
|
||||
|
||||
db:
|
||||
image: postgres:15-alpine
|
||||
container_name: postgres-tinder
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- POSTGRES_DB=\${DB_NAME:-telegram_tinder_bot}
|
||||
- POSTGRES_USER=\${DB_USERNAME:-postgres}
|
||||
- POSTGRES_PASSWORD=\${DB_PASSWORD:-postgres}
|
||||
volumes:
|
||||
- postgres_data:/var/lib/postgresql/data
|
||||
ports:
|
||||
- "5433:5432"
|
||||
networks:
|
||||
- bot-network
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U \${DB_USERNAME:-postgres} -d \${DB_NAME:-telegram_tinder_bot}"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 10s
|
||||
|
||||
adminer:
|
||||
image: adminer:latest
|
||||
container_name: adminer-tinder
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:8080"
|
||||
networks:
|
||||
- bot-network
|
||||
EOL
|
||||
fi
|
||||
|
||||
# Завершаем файл docker-compose.yml
|
||||
cat >> docker-compose.yml << EOL
|
||||
|
||||
volumes:
|
||||
postgres_data:
|
||||
|
||||
networks:
|
||||
bot-network:
|
||||
driver: bridge
|
||||
EOL
|
||||
|
||||
echo "✅ docker-compose.yml обновлен!"
|
||||
|
||||
echo "🚀 Готово! Теперь вы можете запустить контейнеры снова с помощью команды:"
|
||||
echo "docker-compose up -d"
|
||||
15
bin/fix_line_endings.sh
Normal file
15
bin/fix_line_endings.sh
Normal file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
# fix_line_endings.sh - Script to fix line endings in shell scripts
|
||||
|
||||
echo "🔧 Fixing line endings in shell scripts..."
|
||||
|
||||
# Fix shell scripts
|
||||
for file in $(find . -name "*.sh"); do
|
||||
echo "📄 Processing $file..."
|
||||
tr -d '\r' < "$file" > "$file.fixed"
|
||||
mv "$file.fixed" "$file"
|
||||
chmod +x "$file"
|
||||
echo "✅ Fixed $file"
|
||||
done
|
||||
|
||||
echo "🚀 All shell scripts fixed!"
|
||||
Reference in New Issue
Block a user