Skip to content

feat(infra): production container for the API, worker, beat and migrations - #73

Merged
Mahakisore7 merged 1 commit into
mainfrom
feat/api-container
Oct 4, 2026
Merged

Mahakisore7 merged 1 commit into
mainfrom
feat/api-container

Conversation

@Mahakisore7

Copy link
Copy Markdown
Member

One multi-stage image (services/api/Dockerfile, built from the repo root): locked runtime dependencies installed by uv, a slim non-root runtime with Debian security updates applied, a HEALTHCHECK on /health, and an entrypoint whose first argument picks the role (api, worker, beat, migrate). The migrate role prefers MIGRATION_DATABASE_URL so only the release step holds owner credentials.

CI gains an image job: build with layer caching, start the container and require /health plus a healthy Docker status as a non-root user, then fail on fixable HIGH/CRITICAL vulnerabilities (Trivy 0.75.0). docker-compose gets an app profile that runs all three processes from the image. The deploy runbook documents the service layout.

Verified locally: each role starts (worker connects to Redis and reports ready; beat schedules; migrate applies via the override and fails without it); Trivy finds no fixable HIGH/CRITICAL issues.

…tions

One multi-stage image (services/api/Dockerfile, built from the repo root):
locked runtime dependencies installed by uv, a slim non-root runtime with
Debian security updates applied, a HEALTHCHECK on /health, and an
entrypoint whose first argument picks the role (api, worker, beat,
migrate). The migrate role prefers MIGRATION_DATABASE_URL so only the
release step holds owner credentials.

CI gains an image job: build with layer caching, start the container and
require /health plus a healthy Docker status as a non-root user, then fail
on fixable HIGH/CRITICAL vulnerabilities (Trivy 0.75.0). docker-compose
gets an app profile that runs all three processes from the image. The
deploy runbook documents the service layout.

Verified locally: each role starts (worker connects to Redis and reports
ready; beat schedules; migrate applies via the override and fails without
it); Trivy finds no fixable HIGH/CRITICAL issues.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@Mahakisore7
Mahakisore7 merged commit d908108 into main Oct 4, 2026
4 checks passed
Mahakisore7 added a commit that referenced this pull request Oct 4, 2026
docs: README numbers after #73-#77; image stage and containerised run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant