66ac184a6f
Phase 0 of the e-invoicing migration plan (see the E-Rechnung planning session) — moves invoicePdf.tsx, correctionInvoicePdf.tsx, and taxBreakdown.ts into a new shared package, consumed as a git dependency by both this repo and the payload backend, instead of hand-duplicating the correction-invoice logic between them (see that package's own README for the three real drifts the duplication had already caused). Consumed as raw TS/TSX source via next.config.ts's transpilePackages, not a pre-built package. Needs `git` in the Docker deps stage and a project .npmrc (allow-git=root) to let npm ci fetch a git-URL dependency at all — npm 12+ disables that by default. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
30 lines
808 B
Docker
30 lines
808 B
Docker
FROM node:20-alpine AS base
|
|
|
|
FROM base AS deps
|
|
# git — needed for `npm ci` to fetch @einfach-produktiv/invoicing, a git-URL
|
|
# dependency (see package.json); Alpine's base image doesn't ship it.
|
|
RUN apk add --no-cache libc6-compat git
|
|
WORKDIR /app
|
|
COPY package*.json .npmrc ./
|
|
RUN npm ci
|
|
|
|
FROM base AS builder
|
|
WORKDIR /app
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY . .
|
|
RUN npm run build
|
|
|
|
FROM base AS runner
|
|
WORKDIR /app
|
|
ENV NODE_ENV=production
|
|
RUN addgroup --system --gid 1001 nodejs
|
|
RUN adduser --system --uid 1001 nextjs
|
|
COPY --from=builder /app/public ./public
|
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./
|
|
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static
|
|
USER nextjs
|
|
EXPOSE 3000
|
|
ENV PORT=3000
|
|
ENV HOSTNAME="0.0.0.0"
|
|
CMD ["node", "server.js"]
|