FROM node:20-alpine AS builder WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY . . ENV API_INTERNAL_URL=http://api:8000 ARG AZURE_AD_TENANT_ID ARG AZURE_AD_CLIENT_ID ENV NEXT_PUBLIC_AZURE_TENANT_ID=$AZURE_AD_TENANT_ID ENV NEXT_PUBLIC_AZURE_CLIENT_ID=$AZURE_AD_CLIENT_ID RUN npm run build FROM node:20-alpine # Install Chromium for Puppeteer (used by PDF/PPTX export) RUN apk add --no-cache chromium nss freetype harfbuzz ca-certificates ttf-freefont ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true ENV APP_DATA_DIRECTORY=/app_data ENV TEMP_DIRECTORY=/tmp/deckforge WORKDIR /app COPY --from=builder /app/.next-build ./.next-build COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/package.json ./ COPY --from=builder /app/public ./public COPY --from=builder /app/next.config.mjs ./ EXPOSE 3000 CMD ["npm", "start"]