Adds 'openshell doctor check' that validates Docker connectivity before
gateway setup. Reports pass/fail with version info and DOCKER_HOST
status, giving users a quick way to verify their environment.
Fail fast with actionable guidance when Docker is not installed, not
running, or unreachable instead of starting a multi-minute deploy that
times out with a cryptic error.
- Add check_docker_available() preflight that pings the Docker daemon
before any gateway work begins
- Integrate into both gateway start and sandbox create auto-bootstrap
- Probe alternative socket paths (~/.orbstack, ~/.colima) and suggest
DOCKER_HOST when no default socket is found
- Expand FAILURE_PATTERNS to match socket-not-found errors
- Update docs to list supported Docker-compatible runtimes
- Add e2e tests verifying fast failure and error message quality
PR #281 removed the shared openshell-cluster Docker network in favor of
the default bridge. This restores custom bridge networking but makes each
gateway use its own isolated network named openshell-cluster-{name},
matching the existing container/volume naming convention.
Changes:
- Add network_name() to constants.rs for per-gateway network naming
- Add ensure_network() with retry/backoff and force_remove_network()
parameterized by network name instead of a global constant
- Attach containers to their per-gateway network via network_mode
- Disconnect and remove the network during gateway destroy
- Wire ensure_network() into the deploy flow before ensure_volume()
- Update architecture docs to reflect per-gateway network isolation