# Dockerfile # --- Stufe 1: Bau-Umgebung ("builder") --- # Baut die Angular-Anwendung und erzeugt statische Dateien FROM node:20-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm install COPY . . RUN npm run build # --- Stufe 2: Produktions-Umgebung ("runner") --- # Verwendet Node.js mit dem 'serve'-Paket, um die statischen Dateien auszuliefern FROM node:20-alpine AS runner WORKDIR /app # Installiere das 'serve'-Paket global im Container RUN npm install -g serve # Kopiere nur die gebauten Browser-Dateien aus der Builder-Stufe COPY --from=builder /app/dist/frontend/browser . # 'serve' läuft standardmäßig auf Port 3000. Wir exposen diesen Port. EXPOSE 3000 # Starte den 'serve'-Webserver. # Der Parameter "-s" ist wichtig für Single-Page-Applications wie Angular. # Er stellt sicher, dass alle Anfragen an die index.html weitergeleitet werden. CMD [ "serve", "-s", "." ]