FROM node:22-bookworm-slim WORKDIR /app ENV NEXT_TELEMETRY_DISABLED=1 # Build-time NEXT_PUBLIC vars for client bundles. ARG NEXT_PUBLIC_SUPABASE_URL ARG NEXT_PUBLIC_SUPABASE_ANON_KEY ARG NEXT_PUBLIC_GOOGLE_CLIENT_ID ARG NEXT_PUBLIC_MISSION_CONTROL_URL ARG NEXT_PUBLIC_GANTT_BOARD_URL ARG NEXT_PUBLIC_BLOG_BACKUP_URL ARG NEXT_PUBLIC_GITEA_URL ARG NEXT_PUBLIC_GITHUB_URL ARG NEXT_PUBLIC_VERCEL_URL ARG NEXT_PUBLIC_SUPABASE_SITE_URL ARG NEXT_PUBLIC_GOOGLE_URL ARG NEXT_PUBLIC_GOOGLE_CALENDAR_URL ARG NEXT_PUBLIC_GOOGLE_CALENDAR_SETTINGS_URL ARG NEXT_PUBLIC_GANTT_API_BASE_URL ARG NEXT_PUBLIC_APP_URL ENV NEXT_PUBLIC_SUPABASE_URL=$NEXT_PUBLIC_SUPABASE_URL \ NEXT_PUBLIC_SUPABASE_ANON_KEY=$NEXT_PUBLIC_SUPABASE_ANON_KEY \ NEXT_PUBLIC_GOOGLE_CLIENT_ID=$NEXT_PUBLIC_GOOGLE_CLIENT_ID \ NEXT_PUBLIC_MISSION_CONTROL_URL=$NEXT_PUBLIC_MISSION_CONTROL_URL \ NEXT_PUBLIC_GANTT_BOARD_URL=$NEXT_PUBLIC_GANTT_BOARD_URL \ NEXT_PUBLIC_BLOG_BACKUP_URL=$NEXT_PUBLIC_BLOG_BACKUP_URL \ NEXT_PUBLIC_GITEA_URL=$NEXT_PUBLIC_GITEA_URL \ NEXT_PUBLIC_GITHUB_URL=$NEXT_PUBLIC_GITHUB_URL \ NEXT_PUBLIC_VERCEL_URL=$NEXT_PUBLIC_VERCEL_URL \ NEXT_PUBLIC_SUPABASE_SITE_URL=$NEXT_PUBLIC_SUPABASE_SITE_URL \ NEXT_PUBLIC_GOOGLE_URL=$NEXT_PUBLIC_GOOGLE_URL \ NEXT_PUBLIC_GOOGLE_CALENDAR_URL=$NEXT_PUBLIC_GOOGLE_CALENDAR_URL \ NEXT_PUBLIC_GOOGLE_CALENDAR_SETTINGS_URL=$NEXT_PUBLIC_GOOGLE_CALENDAR_SETTINGS_URL \ NEXT_PUBLIC_GANTT_API_BASE_URL=$NEXT_PUBLIC_GANTT_API_BASE_URL \ NEXT_PUBLIC_APP_URL=$NEXT_PUBLIC_APP_URL COPY package*.json ./ RUN npm ci COPY . . RUN npm run build && npm prune --omit=dev RUN mkdir -p /app/data EXPOSE 8301 CMD ["npm", "run", "start", "--", "-H", "0.0.0.0", "-p", "8301"]