From a90e046e0314096ef595d7e7baf7c954b2a20525 Mon Sep 17 00:00:00 2001 From: "Andrey K. Choi" Date: Wed, 26 Nov 2025 10:08:59 +0900 Subject: [PATCH] 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 --- bin/setup-docker-compose-compatibility.sh | 59 +++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 bin/setup-docker-compose-compatibility.sh diff --git a/bin/setup-docker-compose-compatibility.sh b/bin/setup-docker-compose-compatibility.sh new file mode 100644 index 0000000..9df2cae --- /dev/null +++ b/bin/setup-docker-compose-compatibility.sh @@ -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 "🎉 Настройка завершена!" \ No newline at end of file