feat: add toolchain check scripts and mise tasks
- scripts/check-toolchain.sh: checks gcc, homebrew, mise, go, node - scripts/check-docker-toolchain.sh: checks docker, compose, colima (macOS), buildx - mise tasks: check-toolchain, check-docker-toolchain, check-all
This commit is contained in:
Executable
+115
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env bash
|
||||
# Check Docker toolchain: docker, docker compose, colima (macOS).
|
||||
# Usage: ./scripts/check-docker-toolchain.sh
|
||||
set -euo pipefail
|
||||
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
ok() { echo -e " ${GREEN}✓${NC} $1"; }
|
||||
warn() { echo -e " ${YELLOW}!${NC} $1"; }
|
||||
fail() { echo -e " ${RED}✗${NC} $1"; }
|
||||
|
||||
IS_MAC=false
|
||||
[[ "$(uname)" == "Darwin" ]] && IS_MAC=true
|
||||
|
||||
echo "=== Docker Toolchain Check ==="
|
||||
echo ""
|
||||
|
||||
# ─── Docker ────────────────────────────────────────────────────────────
|
||||
echo "Docker:"
|
||||
if command -v docker &>/dev/null; then
|
||||
docker_ver=$(docker --version 2>/dev/null)
|
||||
ok "docker found: $docker_ver"
|
||||
|
||||
# Check if docker daemon is running
|
||||
if docker info &>/dev/null; then
|
||||
ok "docker daemon is running"
|
||||
else
|
||||
fail "docker daemon is not running"
|
||||
if $IS_MAC && command -v colima &>/dev/null; then
|
||||
echo " Try: colima start"
|
||||
elif $IS_MAC; then
|
||||
echo " Start Docker Desktop or install colima: brew install colima"
|
||||
else
|
||||
echo " Try: sudo systemctl start docker"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
fail "docker not found"
|
||||
if command -v brew &>/dev/null; then
|
||||
echo " Install: brew install --cask docker (Docker Desktop) or brew install docker"
|
||||
else
|
||||
echo " Install: https://docs.docker.com/engine/install/"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# ─── Docker Compose ────────────────────────────────────────────────────
|
||||
echo "Docker Compose:"
|
||||
if docker compose version &>/dev/null 2>&1; then
|
||||
compose_ver=$(docker compose version 2>/dev/null | head -1)
|
||||
ok "docker compose plugin found: $compose_ver"
|
||||
elif command -v docker-compose &>/dev/null; then
|
||||
compose_ver=$(docker-compose --version 2>/dev/null)
|
||||
ok "docker-compose found: $compose_ver"
|
||||
else
|
||||
fail "docker compose not found"
|
||||
if command -v brew &>/dev/null; then
|
||||
echo " Install: brew install docker-compose (legacy) or ensure Docker Desktop includes the plugin"
|
||||
else
|
||||
echo " Install: https://docs.docker.com/compose/install/"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# ─── Colima (macOS only) ───────────────────────────────────────────────
|
||||
if $IS_MAC; then
|
||||
echo "Colima (macOS):"
|
||||
if command -v colima &>/dev/null; then
|
||||
colima_ver=$(colima version 2>/dev/null)
|
||||
ok "colima found: $colima_ver"
|
||||
|
||||
# Check if colima is running
|
||||
if colima status 2>/dev/null | grep -q "Running"; then
|
||||
ok "colima is running"
|
||||
else
|
||||
warn "colima is not running"
|
||||
echo " Start: colima start"
|
||||
fi
|
||||
|
||||
# Check if docker context is set to colima
|
||||
if docker context inspect 2>/dev/null | grep -q "colima"; then
|
||||
ok "docker context is set to colima"
|
||||
else
|
||||
warn "docker context may not be set to colima"
|
||||
echo " Switch: docker context use colima"
|
||||
fi
|
||||
else
|
||||
warn "colima not found (alternative to Docker Desktop for macOS)"
|
||||
if command -v brew &>/dev/null; then
|
||||
echo " Install: brew install colima"
|
||||
fi
|
||||
echo " Note: Not required if using Docker Desktop"
|
||||
fi
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# ─── Docker Buildx ─────────────────────────────────────────────────────
|
||||
echo "Docker Buildx:"
|
||||
if docker buildx version &>/dev/null 2>&1; then
|
||||
buildx_ver=$(docker buildx version 2>/dev/null)
|
||||
ok "docker buildx found: $buildx_ver"
|
||||
else
|
||||
warn "docker buildx not found (needed for multi-platform builds)"
|
||||
if command -v brew &>/dev/null; then
|
||||
echo " Install: brew install docker-buildx"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "=== Docker toolchain check complete ==="
|
||||
Reference in New Issue
Block a user