fix(docker): compose stack starts cold (gh_token secret + correct healthcheck)#79
Conversation
… healthcheck) I1: the app service builds from the Dockerfile, which pulls the private batch-job-api from GitHub Packages via a BuildKit secret (id=gh_token). docker-compose.yml declared no secret, so `docker compose up` failed the build cold with a missing /run/secrets/gh_token. Wire the secret from the GITHUB_TOKEN env var and pass GITHUB_ACTOR as a build arg. I2: both the Dockerfile HEALTHCHECK and the compose healthcheck probed /actuator/health, which is 503 until a plugin is loaded — a fresh container would loop unhealthy/restart forever. Probe /jobs/plugins (200 once serving, and public), matching CI and process-compose readiness. Document the GITHUB_TOKEN requirement in RUNNING_LOCALLY.md.
|
Warning Review limit reached
More reviews will be available in 19 minutes and 2 seconds. Learn how PR review limits work. Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file). ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based credits. 🚦 How do rate limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan refill rate. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, the refill rate gradually slows as usage increases. The highest same-day bursts are limited more strictly. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
What
Two fixes so
docker compose upworks on a fresh machine (backlog I1 + I2).I1 — missing build secret. The
appservice builds fromfr-batch-service/Dockerfile, which pulls the privatebatch-job-apifrom GitHub Packages via a BuildKit secret (--mount=type=secret,id=gh_token). The compose file declared no secret, so a colddocker compose upfailed the build with a missing/run/secrets/gh_token. Now the secret is sourced fromGITHUB_TOKEN, andGITHUB_ACTORis passed as a build arg (defaulting tox-access-token).I2 — wrong healthcheck endpoint. Both the Dockerfile
HEALTHCHECKand the compose healthcheck probed/actuator/health, which returns 503 until at least one plugin is loaded — a fresh container would loop unhealthy → restart forever. Both now probe/jobs/plugins, which returns 200 as soon as the app serves and is public (no auth), matching the readiness probe already used by CI andprocess-compose.yaml.Files
docker-compose.yml— appbuild.secrets+build.args, top-levelsecrets:, healthcheck endpointfr-batch-service/Dockerfile— HEALTHCHECK endpointRUNNING_LOCALLY.md— document theGITHUB_TOKENexportVerification
docker-dry-runCI job builds the Dockerfile (validates the HEALTHCHECK + secret mount)./jobs/pluginsconfirmed public viaSecurityConfigand the existing CI health-wait that hits it without credentials.