Cybersecurity-Projects/PROJECTS/beginner/canary-token-generator
CarterPerez-dev a5c8d17134 feat(canary): add canary.dev + canary.prod Dockerfiles + import infra/
Production Dockerfile (infra/docker/canary.prod):
- Multi-stage: golang:1.25-alpine builder → distroless/static:nonroot final
- CGO_ENABLED=0, -trimpath, -ldflags='-s -w' → minimal static binary
- Embeds config.yaml; runs as nonroot user
- ENTRYPOINT /canary, CMD -config /config.yaml
- EXPOSE 8080

Development Dockerfile (infra/docker/canary.dev):
- golang:1.25-alpine + air-verse/air for hot reload
- Source bind-mounted by dev.compose.yml; .air.toml drives rebuilds
- go mod download cached at image-build time, dep refresh at runtime if changed
- EXPOSE 8080

Also imports the rest of the template's infra/ that was untracked:
- infra/docker/vite.dev + vite.prod (existing, unchanged)
- infra/nginx/{nginx.conf, dev.nginx, prod.nginx, nginx.prod.conf}
  These will be extended in Phase 15 with /api, /c, /k upstream blocks.
2026-05-10 05:24:42 -04:00
..
backend chore(canary): merge backend compose into project root 2026-05-10 05:23:55 -04:00
infra feat(canary): add canary.dev + canary.prod Dockerfiles + import infra/ 2026-05-10 05:24:42 -04:00
.gitignore chore(canary): expand project .gitignore for Go + Node + secrets 2026-05-10 05:13:19 -04:00
cloudflared.compose.yml chore(canary): rebrand from no-auth-template to canary-token-generator 2026-05-10 05:15:09 -04:00
compose.yml chore(canary): merge backend compose into project root 2026-05-10 05:23:55 -04:00
dev.compose.yml chore(canary): merge backend compose into project root 2026-05-10 05:23:55 -04:00