chore(infra): Backend-Docker-Image von unnoetigen Dateien befreien #276
No reviewers
Labels
No labels
component/backend
component/docs
component/e2e
component/frontend
component/infra
component/keycloak
prio/high
prio/low
prio/medium
type/bug
type/chore
type/feature
type/refactor
type/test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
WompSchmiede/FamilienFeierPlaner!276
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "issue-266"
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?
Allgemein
Altes Verhalten
Das Backend-Docker-Image ist 633 MB gross und wird in ~50s gebaut.
Der Runner-Stage kopiert
node_modulesmit allen devDependencies (483 MB)und das gesamte
prisma/-Verzeichnis (seed.ts + schema.prisma werden zurLaufzeit nicht benoetigt).
Neues Verhalten
Image-Groesse reduziert auf 173 MB (73% Reduktion), Build-Time ~45s.
npm ci --omit=dev --ignore-scriptsinstalliert nur Production-Dependenciesnode_modules/.prisma/) wird aus dem Builder kopiert — keinprisma generatezur Laufzeit noetigprisma/wirdschema.prisma(fuerprisma migrate deploy),seed.ts(fuer DB-Seeding beim ersten Start) undmigrations/kopiertCOPY-Uebersicht im Runner-Stage
package.json,package-lock.json,prisma.config.ts/app/node_modules/.prisma//app/node_modules/.prisma/PrismaClient-Export)prisma/schema.prisma/app/prisma/schema.prismaprisma migrate deploybenoetigtprisma/seed.ts/app/prisma/seed.tsprisma/migrations//app/prisma/migrations/prisma migrate deploydist//app/dist/openapi.yaml/app/openapi.yamlNachbesserungen (3 Commits nach Erst-Implementierung)
Nach dem ersten Build wurden folgende Laufzeitfehler behoben:
package-lock.jsonfehlte —npm ciim Runner braucht zwingend die Lock-Datei (EUSAGE-Fehler)PrismaClient-Export fehlte —npm ci --ignore-scriptsueberspringtprisma generate, dahernode_modules/.prisma/aus Builder kopiertschema.prismafehlte —prisma migrate deploybraucht das Schemaseed.tsfehlte —index.tsruft beim ersten Startnpx tsx prisma/seed.tsaufMessung Vorher / Nachher
Begruendung
Reduziert Speicherverbrauch, schnellere Deployments, kleinere
Angriffsflaeche durch Wegfall unnoetiger Tools (TypeScript, ESLint, etc.).
Test-Hinweise
npm --prefix backend run build(tsc) → erfolgreichnpm --prefix backend run test→ 31 Test-Dateien, 550 Tests bestandenpodman build --no-cache -f backend/Dockerfile backend→ Image 173 MBprisma migrate deploy+ Seeding + Keycloak-Provisioning laufen durchCheckliste
95f228539513f4d11274