# syntax=docker/dockerfile:1.7 # ---- deps ---- FROM node:20-alpine AS deps WORKDIR /app COPY package.json package-lock.json* ./ RUN if [ -f package-lock.json ]; then npm ci; else npm install --no-audit --no-fund; fi # ---- builder ---- FROM node:20-alpine AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NODE_ENV=production RUN npm run build # ---- runner ---- FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production ENV PORT=3000 COPY --from=builder /app/package.json ./package.json COPY --from=builder /app/package-lock.json* ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/.next ./.next COPY --from=builder /app/public ./public COPY --from=builder /app/server.js ./server.js COPY --from=builder /app/tracing.js ./tracing.js COPY --from=builder /app/server ./server COPY --from=builder /app/app/lib/words ./app/lib/words COPY --from=builder /app/next.config.js ./next.config.js EXPOSE 3000 CMD ["node", "server.js"]