# Multi-Stage Build: deps → build → runner.
# Analog w-make-com, aber standalone mit bereits gebauter Next.js App.

FROM node:22.13-bookworm-slim AS deps
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends python3 build-essential ca-certificates \
 && rm -rf /var/lib/apt/lists/*
COPY package.json package-lock.json* ./
RUN npm ci

FROM deps AS build
WORKDIR /app
COPY . .
ARG NEXT_PUBLIC_SITE_URL=https://eldov.win
ENV NEXT_PUBLIC_SITE_URL=${NEXT_PUBLIC_SITE_URL}
ENV NEXT_TELEMETRY_DISABLED=1
RUN npm run build

FROM node:22.13-bookworm-slim AS runner
WORKDIR /app
ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000
# Non-Root
RUN groupadd --system --gid 1001 nodejs \
 && useradd --system --uid 1001 --gid nodejs eldov
# Standalone-Output kopieren (Next.js legt ihn unter .next/standalone an,
# wenn output: 'standalone' gesetzt ist; hier vorerst klassischer next start).
COPY --from=build /app/.next ./.next
COPY --from=build /app/public ./public
COPY --from=build /app/src ./src
COPY --from=build /app/package.json ./package.json
COPY --from=build /app/next.config.ts ./next.config.ts
COPY --from=build /app/proxy.ts ./proxy.ts
COPY --from=build /app/node_modules ./node_modules
RUN mkdir -p /app/data && chown -R eldov:nodejs /app
USER eldov
EXPOSE 3000
CMD ["npm", "run", "start"]
