42 lines
1.1 KiB
Docker
42 lines
1.1 KiB
Docker
# STAGE 1: Build
|
|
FROM node:22-alpine AS builder
|
|
|
|
# Wir erstellen ein Arbeitsverzeichnis, das eine Ebene über dem Projekt liegt
|
|
WORKDIR /usr/src/app
|
|
|
|
# 1. Wir kopieren die Backend-Models an die Stelle, wo Angular sie erwartet
|
|
# Deine Pfade suchen nach ../bizmatch-server, also legen wir es daneben.
|
|
COPY bizmatch-server/src/models ./bizmatch-server/src/models
|
|
|
|
# 2. Jetzt kümmern wir uns um das Frontend
|
|
# Wir kopieren erst die package Files für besseres Caching
|
|
COPY bizmatch/package*.json ./bizmatch/
|
|
|
|
# Wechseln in den Frontend Ordner zum Installieren
|
|
WORKDIR /usr/src/app/bizmatch
|
|
RUN npm ci
|
|
|
|
# 3. Den Rest des Frontends kopieren
|
|
COPY bizmatch/ .
|
|
|
|
# 4. Bauen
|
|
RUN npm run build:ssr
|
|
|
|
# --- STAGE 2: Runtime ---
|
|
FROM node:22-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=4000
|
|
|
|
# Kopiere das Ergebnis aus dem Builder (Pfad beachten!)
|
|
COPY --from=builder /usr/src/app/bizmatch/dist /app/dist
|
|
COPY --from=builder /usr/src/app/bizmatch/package*.json /app/
|
|
|
|
RUN npm ci --omit=dev
|
|
|
|
EXPOSE 4000
|
|
|
|
CMD ["node", "dist/bizmatch/server/server.mjs"]
|