# Multi-Stage Dockerfile for Gothic II Mod Website FROM node:20-alpine AS builder WORKDIR /app # Install dependencies first for better Docker layer caching COPY package*.json ./ RUN npm install # Copy source code and build the production bundle COPY . . RUN npm run build # Production Runner Stage FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 # Install production dependencies only COPY package*.json ./ RUN npm install --omit=dev # Copy built dist files and default cms data from builder COPY --from=builder /app/dist ./dist COPY --from=builder /app/src/data ./src/data COPY --from=builder /app/cms-data.json ./cms-data.json EXPOSE 3000 CMD ["node", "dist/server.cjs"]