32 lines
740 B
Docker
32 lines
740 B
Docker
# Nutze Node.js als Basis
|
|
FROM node:20-alpine AS build
|
|
WORKDIR /app
|
|
|
|
# Kopiere package files und installiere Abhängigkeiten
|
|
COPY package*.json ./
|
|
RUN npm install
|
|
|
|
# Kopiere den restlichen Code (Inklusive der 1,5 GB Daten!)
|
|
COPY . .
|
|
|
|
# Baue das Frontend
|
|
RUN npm run build
|
|
|
|
# Finales Image
|
|
FROM node:20-alpine
|
|
WORKDIR /app
|
|
|
|
COPY package*.json ./
|
|
RUN npm install --production
|
|
|
|
# Kopiere das gebaute Frontend und das Backend
|
|
COPY --from=build /app/dist ./dist
|
|
COPY --from=build /app/server.cjs ./
|
|
|
|
# JETZT WIEDER REIN: Kopiere den public Ordner (wo die großen Daten liegen)
|
|
# Wir kopieren ihn direkt aus dem build-context
|
|
COPY --from=build /app/public ./public
|
|
|
|
# Der Express-Server läuft auf Port 3000
|
|
EXPOSE 3000
|
|
CMD ["node", "server.cjs"] |