Skip to content

Commit cf7185d

Browse files
committed
fix: add docker compose v2 plugin check and fallback
Add check-docker-compose recipe to justfile that verifies the docker compose plugin is available, with automatic fallback to symlink standalone docker-compose v2 as a plugin. Applied same logic to uninstall.sh for standalone script usage.
1 parent 9d7f891 commit cf7185d

File tree

2 files changed

+40
-1
lines changed

2 files changed

+40
-1
lines changed

justfile

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,36 @@ build-daemon:
4949
@echo "Building daemon release binary..."
5050
cargo build --release --bin neura_hustle_daemon
5151

52-
db-up:
52+
check-docker-compose:
53+
#!/usr/bin/env bash
54+
if docker compose version >/dev/null 2>&1; then
55+
exit 0
56+
fi
57+
echo "Docker compose plugin not found. Attempting to set it up..."
58+
# Check if standalone docker-compose v2 exists and symlink it as a plugin
59+
if command -v docker-compose >/dev/null 2>&1; then
60+
version=$(docker-compose version 2>/dev/null || true)
61+
if echo "$version" | grep -q "v2"; then
62+
plugin_dir="${DOCKER_CONFIG:-$HOME/.docker}/cli-plugins"
63+
mkdir -p "$plugin_dir"
64+
ln -sf "$(command -v docker-compose)" "$plugin_dir/docker-compose"
65+
echo "Symlinked docker-compose as docker compose plugin."
66+
if docker compose version >/dev/null 2>&1; then
67+
echo "✓ docker compose is now available!"
68+
exit 0
69+
fi
70+
fi
71+
fi
72+
echo ""
73+
echo "ERROR: 'docker compose' is not available."
74+
echo ""
75+
echo "Install it with one of:"
76+
echo " sudo apt-get install docker-compose-plugin"
77+
echo " # or see https://docs.docker.com/compose/install/"
78+
echo ""
79+
exit 1
80+
81+
db-up: check-docker-compose
5382
@echo "Starting PostgreSQL..."
5483
docker compose up -d
5584
@echo "Waiting for database to be ready..."

src/scripts/uninstall.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ fi
3737
echo ""
3838
echo "Stopping Docker Compose and removing database..."
3939
cd "$PROJECT_ROOT"
40+
41+
# Ensure docker compose plugin is available
42+
if ! docker compose version >/dev/null 2>&1; then
43+
if command -v docker-compose >/dev/null 2>&1 && docker-compose version 2>/dev/null | grep -q "v2"; then
44+
plugin_dir="${DOCKER_CONFIG:-$HOME/.docker}/cli-plugins"
45+
mkdir -p "$plugin_dir"
46+
ln -sf "$(command -v docker-compose)" "$plugin_dir/docker-compose"
47+
fi
48+
fi
49+
4050
docker compose down -v 2>/dev/null || echo "Docker Compose already stopped or not running"
4151

4252
echo ""

0 commit comments

Comments
 (0)