Merge pull request #12 from ShaYmez/copilot/fix-docker-compose-command-not-found

Fix docker-compose command not found on Debian 12+ with docker-compose-plugin
This commit is contained in:
M0VUB 2025-12-13 02:59:22 +00:00 committed by GitHub
commit 01c18b30fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -97,14 +97,40 @@ install_docker_and_dependencies() {
if [ $version -ge 12 ]; then if [ $version -ge 12 ]; then
# For Debian 12+ use docker-compose-plugin or install from GitHub # For Debian 12+ use docker-compose-plugin or install from GitHub
# Note: We prefer docker-compose-plugin from apt repos when available for security # Note: We prefer docker-compose-plugin from apt repos when available for security
apt-get install -y docker-compose-plugin 2>/dev/null || { if apt-get install -y docker-compose-plugin 2>/dev/null; then
echo "docker-compose-plugin installed successfully"
# Create wrapper script for docker-compose command compatibility
# docker-compose-plugin provides 'docker compose' but scripts use 'docker-compose'
# Note: Using single quotes in heredoc ('EOF') prevents variable expansion for robustness
if [ ! -f /usr/local/bin/docker-compose ]; then
echo "Creating docker-compose wrapper script..."
# Create wrapper that forwards all commands to 'docker compose'
# Exit on failure is intentional - without this wrapper, all control scripts will fail
if cat > /usr/local/bin/docker-compose << 'EOF'
#!/bin/sh
# Wrapper script to provide docker-compose command using docker compose plugin
exec docker compose "$@"
EOF
then
chmod +x /usr/local/bin/docker-compose
echo "docker-compose wrapper created successfully"
else
echo "ERROR: Failed to create docker-compose wrapper script"
exit 1
fi
else
# Skip wrapper creation if docker-compose already exists
# This preserves existing installations (from apt or manual install)
echo "docker-compose command already exists, skipping wrapper creation"
fi
else
echo "Installing docker-compose from GitHub releases..." echo "Installing docker-compose from GitHub releases..."
# Fallback to GitHub releases for official Docker Compose binary # Fallback to GitHub releases for official Docker Compose binary
# Downloaded from official Docker GitHub repository over HTTPS # Downloaded from official Docker GitHub repository over HTTPS
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o /usr/local/bin/docker-compose curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose
ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose 2>/dev/null || true ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose 2>/dev/null || true
} fi
else else
# For Debian 10-11 use apt package # For Debian 10-11 use apt package
apt-get install -y docker-compose apt-get install -y docker-compose