26 lines
546 B
Docker
26 lines
546 B
Docker
# ---- Stage 1: Frontend bauen ----
|
|
FROM node:20-slim AS frontend-build
|
|
WORKDIR /app/frontend
|
|
COPY frontend/package.json ./
|
|
RUN npm install
|
|
COPY frontend/ ./
|
|
RUN npm run build
|
|
|
|
# ---- Stage 2: Backend + gebautes Frontend ----
|
|
FROM node:20-slim AS runtime
|
|
WORKDIR /app
|
|
|
|
COPY backend/package.json ./
|
|
RUN npm install --omit=dev
|
|
|
|
COPY backend/ ./
|
|
# Vom Build-Stage kommt das fertige Frontend nach backend/public
|
|
COPY --from=frontend-build /app/backend/public ./public
|
|
|
|
ENV NODE_ENV=production
|
|
ENV PORT=3000
|
|
|
|
EXPOSE 3000
|
|
|
|
CMD ["node", "src/index.js"]
|