From eca5dceee4f9d8cc07ee6aff6f6eb44aaef749fb Mon Sep 17 00:00:00 2001 From: millianlmx Date: Sat, 11 Jul 2026 23:17:47 +0200 Subject: [PATCH] feat(admin-web): add production Dockerfile (multi-stage, Next.js standalone) --- admin-web/Dockerfile | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 admin-web/Dockerfile diff --git a/admin-web/Dockerfile b/admin-web/Dockerfile new file mode 100644 index 0000000..77ea032 --- /dev/null +++ b/admin-web/Dockerfile @@ -0,0 +1,42 @@ +# ── Build stage ── +FROM node:20-alpine AS builder + +WORKDIR /app + +# Install dependencies (leveraging Docker layer cache) +COPY package.json package-lock.json ./ +RUN npm ci + +# Copy source and build +COPY . . +ENV NEXT_TELEMETRY_DISABLED=1 +RUN npm run build + +# ── Runtime stage ── +FROM node:20-alpine AS runner + +WORKDIR /app + +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 + +# Create non-root user +RUN addgroup --system --gid 1001 nodejs && \ + adduser --system --uid 1001 nextjs + +# Copy standalone output from builder +COPY --from=builder /app/.next/standalone ./ +COPY --from=builder /app/.next/static ./.next/static +COPY --from=builder /app/public ./public + +# Set correct ownership +RUN chown -R nextjs:nodejs /app + +USER nextjs + +EXPOSE 3000 + +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" + +CMD ["node", "server.js"]