Files
assafelovic--gpt-researcher/frontend/nextjs/Dockerfile
T
2026-07-13 12:39:12 +08:00

43 lines
1.3 KiB
Docker
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
###############################################
# 1) Dependencies layer
###############################################
FROM node:18.17.0-alpine AS deps
WORKDIR /app
# Copy only package manifest first for better layer caching
COPY package.json ./
# Install dependencies (no lock file present recommend adding one for reproducibility)
RUN npm install --legacy-peer-deps
###############################################
# 2) Builder layer builds Next.js (.next)
###############################################
FROM node:18.17.0-alpine AS builder
WORKDIR /app
COPY --from=deps /app/node_modules ./node_modules
COPY . .
# Build Next.js application (produces .next)
RUN npm run build \
&& npm prune --production
###############################################
# 3) Runner layer production image serving Next.js
###############################################
FROM node:18.17.0-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
# Copy only what is required at runtime
COPY --from=builder /app/package.json ./
COPY --from=builder /app/next.config.mjs ./
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/node_modules ./node_modules
# Expose port (Next.js default)
EXPOSE 3000
# Start the Next.js production server (serves API routes too)
CMD ["npm", "run", "start"]