feat: add frontend dev container to docker-compose #7
Reference in New Issue
Block a user
Delete Branch "feat/frontend-dockerfile"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
frontend/Dockerfile: Node 20 Alpine image, installs deps, runsnpm run devdocker-compose.yml: Frontend service added withdepends_onfor db, minio, and backend — sodocker compose up frontendstarts the full stackvite.config.ts: API proxy target made configurable viaAPI_PROXY_TARGETenv var (defaults tolocalhost:8080for local dev without Docker).env:PORT_FRONTENDcorrected to5173(actual Vite dev server port)How it works
/apicallslocalhost:8080backend:8080(viaAPI_PROXY_TARGET)/apicallsAPI_INTERNAL_URLdefaults tolocalhost:8080API_INTERNAL_URL=http://backend:8080The
frontend_node_modulesnamed volume prevents the host'snode_modulesfrom overwriting the container's (avoids OS binary conflicts on macOS/Windows hosts).Usage
Test plan
docker compose up frontendstarts without errorshttp://localhost:5173.sveltefile, browser updates)npm run devlocally still works unchanged (no Docker)Spring Boot 4.0 Flyway auto-configuration is not triggering in the CI environment — confirmed by empty DB and no flyway_schema_history table. Replace YAML-based auto-config with an explicit @Bean that creates and runs Flyway directly on startup, independent of any auto-configuration conditions. Disable the auto-config via spring.flyway.enabled=false to prevent interference. Add @DependsOn("flyway") to DataInitializer to enforce that CommandLineRunner beans are only registered after migrations. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>- Replace __dirname with fileURLToPath(import.meta.url) for ESM compatibility - Start SvelteKit dev server on port 3000 with 120s webServer timeout - Add data-hydrated attribute (set in onMount) so tests wait for hydration - Fix nav active class assertions: text-brand-navy (not border-brand-navy) - Fix filter button selector: exact match to avoid matching "Alle Filter löschen" - Fix date validation test: use pressSequentially('99') to trigger dateInvalid - Fix person/document search: navigate directly to URL with query param (avoids debounced oninput → goto race condition in CI) - Fix heading selector: level: 1 to avoid strict-mode with h1+h2 on page - Fix auth redirect: return 401 from handleFetch instead of throwing redirect Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>154001de66to0918e75803