Files
dickendock/Dockerfile

22 lines
888 B
Docker

# ── Stage 1: React bauen ─────────────────────────────────────────────────────
FROM node:20-alpine AS builder
WORKDIR /build
COPY frontend/package.json ./
RUN npm install
COPY frontend/ ./
RUN npm run build
# ── Stage 2: Express liefert API + React in einem Container ──────────────────
FROM node:20-alpine
RUN apk add --no-cache tzdata python3 make g++
WORKDIR /app
COPY backend/package.json ./
RUN npm install --production
COPY backend/ ./
# version.txt bei jedem Build mit aktuellem Zeitstempel überschreiben
# → /api/build-time liefert neuen Wert → Frontend erkennt neuen Build → Auto-Reload
RUN date -u +"build-%Y%m%d-%H%M%S" > ./version.txt
COPY --from=builder /build/dist ./public
EXPOSE 4000
CMD ["node", "src/index.js"]