[core-devops-agent] fix: add HEALTHCHECK to workspace/Dockerfile
Some checks failed
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
CI / Detect changes (pull_request) Successful in 1m49s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m49s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m46s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 24s
qa-review / approved (pull_request) Failing after 28s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m23s
security-review / approved (pull_request) Failing after 24s
gate-check-v3 / gate-check (pull_request) Successful in 43s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, l
sop-tier-check / tier-check (pull_request) Successful in 32s
sop-checklist-gate / gate (pull_request) Successful in 34s
CI / Platform (Go) (pull_request) Successful in 10s
CI / Canvas (Next.js) (pull_request) Successful in 10s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 10s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 9s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 12s
Block internal-flavored paths / Block forbidden paths (pull_request) Failing after 10m13s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m50s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Successful in 8m0s
Handlers Postgres Integration / detect-changes (pull_request) Failing after 14m48s
publish-runtime-autobump / pr-validate (pull_request) Failing after 14m23s
publish-runtime-autobump / bump-and-tag (pull_request) Failing after 14m14s
CI / all-required (pull_request) Successful in 3s
Some checks failed
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Blocked by required conditions
CI / Detect changes (pull_request) Successful in 1m49s
E2E API Smoke Test / detect-changes (pull_request) Successful in 1m49s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 1m46s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 24s
qa-review / approved (pull_request) Failing after 28s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 1m23s
security-review / approved (pull_request) Failing after 24s
gate-check-v3 / gate-check (pull_request) Successful in 43s
sop-checklist / all-items-acked (pull_request) [info tier:low] acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, l
sop-tier-check / tier-check (pull_request) Successful in 32s
sop-checklist-gate / gate (pull_request) Successful in 34s
CI / Platform (Go) (pull_request) Successful in 10s
CI / Canvas (Next.js) (pull_request) Successful in 10s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 10s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 9s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 12s
Block internal-flavored paths / Block forbidden paths (pull_request) Failing after 10m13s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m50s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Python Lint & Test (pull_request) Successful in 8m0s
Handlers Postgres Integration / detect-changes (pull_request) Failing after 14m48s
publish-runtime-autobump / pr-validate (pull_request) Failing after 14m23s
publish-runtime-autobump / bump-and-tag (pull_request) Failing after 14m14s
CI / all-required (pull_request) Successful in 3s
Probe the A2A agent-card endpoint so orchestrators and container
runtimes can detect a live, responsive workspace agent without
requiring a registered agent token.
- Uses curl (present in python:3.11-slim base)
- Targets uvicorn server on configurable PORT (default 8000)
- interval=30s, timeout=5s, retries=3 — balances responsiveness
vs. false-positive tolerance on busy containers
- ${PORT:-8000} substitution is safe because:
(a) the base image EXPOSEs 8000
(b) molecule-runtime defaults config.a2a.port to 8000
(c) the entrypoint uses exec form so HEALTHCHECK exec succeeds
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
parent
84b9ca3a12
commit
774d620b79
@ -77,6 +77,15 @@ VOLUME /configs
|
||||
VOLUME /workspace
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
# HEALTHCHECK: probe the A2A agent-card endpoint so orchestrators and
|
||||
# container runtimes can detect a live, responsive workspace agent.
|
||||
# Uses curl (present in python:3.11-slim base) against the uvicorn server.
|
||||
# PORT is injected at runtime via the molecule-runtime entrypoint; the
|
||||
# default matches EXPOSE.
|
||||
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
|
||||
CMD curl -sf http://localhost:${PORT:-8000}/agent/card >/dev/null || exit 1
|
||||
|
||||
RUN chmod +x /app/entrypoint.sh
|
||||
# Start as root — entrypoint fixes volume permissions then drops to agent
|
||||
CMD ["./entrypoint.sh"]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user