foundation/preflight/checks/docker.sh

30 lines
1.1 KiB
Bash
Raw Permalink Normal View History

#!/usr/bin/env bash
# -----------------------------------------------------------------------------
# checks/docker.sh — the Docker daemon is reachable.
# `docker info` must succeed (CONTRACT_003: the whole egg is Docker containers;
# the Pulumi @pulumi/docker provider needs a reachable daemon — locally for the
# CLI sanity check here, over SSH at deploy time).
# Exits non-zero if the docker CLI is missing or the daemon is unreachable.
# -----------------------------------------------------------------------------
set -euo pipefail
PF_DIR=$(cd "$(dirname "$0")/.." && pwd)
# shellcheck source=../lib/common.sh
. "$PF_DIR/lib/common.sh"
echo "[docker] docker daemon reachable"
if ! pf_have docker; then
pf_fail "docker CLI not installed (see tools check)"
pf_summary "docker"
exit $?
fi
if docker info >/dev/null 2>&1; then
ctx=$(docker context show 2>/dev/null || echo "default")
pf_pass "docker daemon reachable (context: $ctx)"
else
pf_fail "docker daemon NOT reachable ('docker info' failed) — is Docker Desktop / the engine running?"
fi
pf_summary "docker"