Files
atomic-design-poc/docker-compose.yml
T
ehoandClaude Opus 4.8 6fa155caa3
CI / frontend (push) Successful in 1m51s
CI / storybook-a11y (push) Successful in 5m4s
CI / backend (push) Successful in 1m21s
CI / codeql (csharp) (push) Has been cancelled
CI / codeql (javascript-typescript) (push) Has been cancelled
CI / api-client-drift (push) Has been cancelled
CI / e2e (push) Has been cancelled
fix(ci): green build — en translations, quiet docker npm, local CI check
Three fixes so Gitea CI is green and stays that way:

- **ng build --localize**: `messages.en.xlf` (hand-maintained, matched by id) had drifted
  ~93 units behind the source since WP-24 — `beheer.*`, `brief.canvas.*`, `brief.diff.*`,
  `orgTemplate.*`, `brief.besluit.*`, etc. With `i18nMissingTranslation: "error"` that fails
  the frontend job. Added English `<target>`s for every missing unit (interpolation `<x/>`
  tags preserved); both nl + en bundles build clean.
- **docker npm noise**: the web container's `npm ci` now runs `--no-fund --loglevel=error`,
  so `docker compose up` boots without npm 11's deprecation / allow-scripts / funding
  warnings (verified in the running container: 0 warning lines). The underlying Angular
  webpack-builder deprecation is upstream; migrating to @angular/build is out of scope.
- **local CI check**: `scripts/ci-local.sh` + `npm run ci` mirror the CI jobs (lint,
  format:check, check:tokens, test, build --localize, audit, backend format+test,
  api-client drift; `--full` adds storybook-a11y) so a red build is caught before pushing.
  Opt-in pre-push hook at scripts/githooks/pre-push. Documented in CLAUDE.md.

Verified: `npm run ci` passes end-to-end; storybook-a11y 169/169 (the local parallel-worker
timeouts were the docker stack starving chromium, not a regression).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-21 17:20:56 +02:00

48 lines
2.1 KiB
YAML

# ponytail: dev-server images (not multi-stage prod builds) — this is a demo.
# `docker compose up` → app at http://localhost:4200, Swagger at http://localhost:5000/swagger
services:
api:
image: mcr.microsoft.com/dotnet/sdk:10.0
working_dir: /src
command: dotnet run --project src/BigRegister.Api --urls http://+:5000
environment:
- ASPNETCORE_ENVIRONMENT=Development
volumes:
# ':z' relabels for SELinux (Fedora/RHEL); harmless on other hosts.
# WP-22: no separate volume needed for the SQLite file — `dotnet run` sets
# its cwd to the project dir (src/BigRegister.Api), which this bind mount
# already covers, so bigregister.db lands on the host and survives
# `docker compose restart api` / `down` + `up` for free (gitignored).
- ./backend:/src:z
- api-bin:/src/src/BigRegister.Api/bin
- api-obj:/src/src/BigRegister.Api/obj
# WP-25: LetterHtml.Render inlines public/letter.css (the FE⇄BE letter
# contract, repo-root sibling of backend/) — mounted here so the same
# walk-up-from-the-assembly lookup that works for `dotnet run`/tests also
# resolves inside this container, whose bind mount otherwise only sees backend/.
- ./public:/src/public:z
ports:
- '5000:5000'
web:
image: node:24
working_dir: /app
# Uses the committed generated client (no codegen at startup); proxies /api → api container.
# ponytail: `--no-fund --loglevel=error` silences npm 11's startup noise (deprecation +
# allow-scripts + funding) so the demo boots clean; ng serve output is unaffected. The
# deprecation lines are Angular 22's webpack-builder (@angular-devkit/build-angular) — a
# known upstream deprecation; migrating to @angular/build is a separate, larger effort.
command: sh -c "npm ci --no-fund --loglevel=error && npx ng serve --host 0.0.0.0 --proxy-config proxy.conf.docker.json"
volumes:
- ./:/app:z
- web-modules:/app/node_modules
ports:
- '4200:4200'
depends_on:
- api
volumes:
api-bin:
api-obj:
web-modules: