- 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
59 lines
2.0 KiB
Bash
59 lines
2.0 KiB
Bash
#!/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 "🎉 Настройка завершена!" |