fix: add .dockerignore to api/ui build contexts (SEC_REVIEW F19)
Without a .dockerignore, `COPY . ./` in both Dockerfiles bakes
everything in the build context — including any future `.env` /
`.env.local`, `tests/` (with fixtures), dev-tooling caches, and the
host `vendor/` (which silently clobbers the deps-stage vendor copied
from `--from=deps`).
Add explicit deny lists at api/.dockerignore and ui/.dockerignore.
Things that ARE needed at runtime stay in the context: src/, public/,
config/, db/migrations/, db/seeds/, bin/console, openapi.php,
docker/, composer.json, composer.lock; ui/ also keeps resources/
(twig views), package.json/package-lock.json,
tailwind.config.js/postcss.config.js (consumed by the assets stage).
Verification: rebuilt both images; verified excluded paths are
absent from the final image and required paths are present; api
phpunit suite is 429/430 (the lone failure is the timing-sensitive
BlocklistPerfTest perf-budget assertion, unrelated); ui phpunit is
134/134.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>