deploy-doctor is a command-line tool that evaluates containerized applications for deployment readiness across common platforms.
It runs static checks (Dockerfile, build context, env/DB heuristics), optional runtime probes, profile-aware thresholds, and outputs machine-readable summaries for CI.
brew tap navig-me/deploy-doctor
brew install deploy-doctorcurl -fsSL https://raw.githubusercontent.com/navig-me/deploy-doctor/main/scripts/install.sh | bashVERSION=v0.1.0 curl -fsSL https://raw.githubusercontent.com/navig-me/deploy-doctor/main/scripts/install.sh | bashmake build
./bin/deploy-doctor versiondeploy-doctor scan: run deployment checks in the current repository.deploy-doctor doctor: verify local prerequisites (for example Docker availability).deploy-doctor profiles list: list supported deployment profiles.deploy-doctor profiles list --recommended: show profile recommendations from repository signals.deploy-doctor profiles explain <profile>: print profile details and thresholds.deploy-doctor version: print installed CLI version.
scan executes in phases:
- Determine profile (
--profileor--auto-profile). - Run static checks:
- Dockerfile checks
- context/image metadata checks
- env/DB heuristics
- provider config signals (evidence-driven confidence)
- Optionally run runtime probes (unless
--static-only). - Aggregate findings and compute:
- severity counts
- score
- status
- Emit:
- human-readable summary
- machine-readable CI line (
DD_SUMMARY ...)
--profile <name>: force profile (default:generic).--auto-profile: detect likely provider profile from repo files.--static-only: skip runtime probes.--runtime=false: disable runtime probes explicitly.--fail-on <none|critical|warning|suggestion>: fail by severity policy.--strict: treat warnings as failures.--verbose/-v: print detailed execution and finding evidence.
- Human-readable summary line:
Scan summary: score=... status=... profile=... findings=(...)
- Machine-readable CI summary line:
DD_SUMMARY score=... status=... critical=... warning=... suggestion=... fail=... profile=...
Exit semantics:
0: scan completed without failure policy trigger.1: findings violated--fail-onor--strictpolicy.2: tool/runtime error.
Examples:
genericlightsailrenderrailwayflyioecs-fargatedigitalocean-app-platformgcp-cloud-runazure-container-appsdokkuvps-systemd-docker
Use:
deploy-doctor profiles list
deploy-doctor profiles explain lightsail
deploy-doctor scan --profile lightsail --static-onlydeploy-doctor doctor
deploy-doctor scan --static-only
deploy-doctor scan --auto-profile -vdeploy-doctor scan --fail-on warning --static-onlyParse DD_SUMMARY in CI logs for machine-readable gating or metrics.