docker fix

This commit is contained in:
2025-09-18 16:47:07 +09:00
parent 29d6255f22
commit fdd0580554
8 changed files with 546 additions and 1 deletions

117
bin/fix_docker.sh Normal file
View 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"