FROM node:20-alpine AS builder WORKDIR /app RUN apk add --no-cache jq # Install dependencies — remove encryptid SDK (REST-based auth instead) COPY frontend/package.json ./ RUN jq 'del(.dependencies["@encryptid/sdk"])' package.json > package.tmp.json && mv package.tmp.json package.json RUN npm install --legacy-peer-deps # Copy source COPY frontend/src/ ./src/ COPY frontend/public/ ./public/ COPY frontend/next.config.ts frontend/tsconfig.json frontend/postcss.config.mjs ./ # Build RUN npm run build # ── Production ──────────────────────────────────────────── FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV=production RUN addgroup --system --gid 1001 nodejs && \ adduser --system --uid 1001 nextjs COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static COPY --from=builder /app/public ./public USER nextjs EXPOSE 3000 ENV HOSTNAME=0.0.0.0 CMD ["node", "server.js"]