118 lines
3.4 KiB
Bash
Executable File
118 lines
3.4 KiB
Bash
Executable File
#!/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"
|