NEXT_PUBLIC_* vars are baked at Next.js build time but were not available during Docker build (web service had no env_file/build args). Hardcode IDs as fallback in msalConfig.ts, also wire AZURE_AD_* through Dockerfile ARGs and docker-compose build args. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
32 lines
917 B
Docker
32 lines
917 B
Docker
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"]
|