Files
fiberops-web/Dockerfile
kevin-asprec 9c4ab46c76 feat: dashboard error boundaries, loading guards, and data import settings page
- Add page-level and layout-level error.tsx boundaries for dashboard
- Add loading guard to dashboard page to defer API calls until auth is ready
- Fix Dockerfile to accept NEXT_PUBLIC_API_URL as build arg
- Fix .env.example API URL to include /api suffix
- Add Data Import tab in settings for CSV/Excel import of clients and invoices
- Create import page with template download, drag-drop upload, and row-level results
2026-05-07 06:19:24 +08:00

23 lines
692 B
Docker

FROM node:20-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json* ./
COPY packages/shared/package.json ./packages/shared/
RUN npm install
COPY packages/shared/ ./packages/shared/
COPY . .
ARG NEXT_PUBLIC_API_URL=http://localhost:3001/api
ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL
RUN npx next build
FROM node:20-alpine AS runner
WORKDIR /app
RUN apk add --no-cache dumb-init
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
ENV NODE_ENV=production HOSTNAME=0.0.0.0
EXPOSE 3000
USER nextjs
ENTRYPOINT ["dumb-init", "--"]
CMD ["node", "server.js"]