Add docker-compose compatibility script for production server

- Script creates symlink or wrapper for docker-compose command
- Automatically detects Docker Compose v2 plugin location
- Fallback to wrapper script if plugin not found
- Helps maintain compatibility with existing deployment scripts
This commit is contained in:
2025-11-26 10:08:59 +09:00
parent 5bcf3e8198
commit a90e046e03

View File

@@ -0,0 +1,59 @@
#!/bin/bash
# Скрипт для настройки совместимости docker-compose с Docker Compose v2
# Запускать на продакшн сервере с правами sudo
echo "🐳 Setting up docker-compose compatibility..."
# Проверяем, есть ли уже docker-compose
if command -v docker-compose >/dev/null 2>&1; then
echo "✅ docker-compose уже доступен:"
docker-compose --version
exit 0
fi
# Проверяем наличие docker compose v2
if ! docker compose version >/dev/null 2>&1; then
echo "❌ Docker Compose v2 не найден. Установите Docker сначала."
exit 1
fi
echo "📦 Docker Compose v2 обнаружен:"
docker compose version
# Пытаемся найти путь к docker-compose plugin
COMPOSE_PLUGIN_PATH=""
for path in "/usr/libexec/docker/cli-plugins/docker-compose" "/usr/local/lib/docker/cli-plugins/docker-compose" "/opt/docker/cli-plugins/docker-compose"; do
if [ -f "$path" ]; then
COMPOSE_PLUGIN_PATH="$path"
break
fi
done
# Если найден plugin, создаем symlink
if [ -n "$COMPOSE_PLUGIN_PATH" ]; then
echo "🔗 Создаем symlink из $COMPOSE_PLUGIN_PATH"
sudo ln -sf "$COMPOSE_PLUGIN_PATH" /usr/local/bin/docker-compose
else
# Создаем wrapper скрипт
echo "📝 Создаем wrapper скрипт..."
sudo tee /usr/local/bin/docker-compose > /dev/null << 'EOF'
#!/bin/bash
# Docker Compose v1 compatibility wrapper
exec docker compose "$@"
EOF
fi
# Делаем исполняемым
sudo chmod +x /usr/local/bin/docker-compose
# Проверяем результат
if command -v docker-compose >/dev/null 2>&1; then
echo "✅ Успешно! docker-compose теперь доступен:"
docker-compose --version
else
echo "❌ Что-то пошло не так. Проверьте настройки PATH."
exit 1
fi
echo "🎉 Настройка завершена!"