Summary
Define and ship the canonical donext-core multi-stage Dockerfile that produces a small, distroless, signed image of the Go binary used for api, worker, cron, and migrate modes. This is the single image for the Go codebase; all five Go process classes invoke it with different serve flags.
Design reference
- docs/09-deployment-ops.md §2.2 (
donext-core Dockerfile canonical) and §2.1 (image strategy decision)
Acceptance criteria
Dependencies
none
Complexity
M
Summary
Define and ship the canonical
donext-coremulti-stage Dockerfile that produces a small, distroless, signed image of the Go binary used forapi,worker,cron, andmigratemodes. This is the single image for the Go codebase; all five Go process classes invoke it with differentserveflags.Design reference
donext-coreDockerfile canonical) and §2.1 (image strategy decision)Acceptance criteria
deploy/docker/Dockerfile.core(or repo-equivalent) usinggolang:1.23-alpinebuild +gcr.io/distroless/static-debian12:nonrootruntimeVERSION,COMMIT,BUILD_DATEand stamped intointernal/buildvia-ldflagsgo:embed(no out-of-image migration files)netgo,osusergotags,-trimpath,-s -wnonroot:nonroot; final image size under ~35 MBCMD ["serve","api"]; supportsserve worker,serve cron,migratecosign attach sbom; cosign keyless signedDependencies
none
Complexity
M