FROM node:20-slim AS builder WORKDIR /app # Paket-Definitionen kopieren und Abhängigkeiten installieren COPY package*.json ./ RUN npm ci # Quellcode kopieren und bauen COPY . . RUN npm run build # --- # Zweite schlanke Stufe für die eigentliche Ausführung FROM node:20-slim WORKDIR /app # Nur die notwendigen gebauten Dateien kopieren COPY --from=builder /app/package*.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/dist ./dist # Typische Astro Standalone Umgebungsvariablen ENV HOST=0.0.0.0 ENV PORT=4321 ENV NODE_ENV=production # Setzen des Datenbank-Pfads in einen dedizierten Ordner, # den wir über Docker-Compose nach außen mounten können. ENV DB_PATH=/app/data/lebenslauf.db EXPOSE 4321 # Start-Kommando CMD ["node", "./dist/server/entry.mjs"]