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:
59
bin/setup-docker-compose-compatibility.sh
Normal file
59
bin/setup-docker-compose-compatibility.sh
Normal 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 "🎉 Настройка завершена!"
|
||||||
Reference in New Issue
Block a user