FROM node:22-alpine AS base FROM base AS deps RUN apk add --no-cache libc6-compat openssl WORKDIR /app COPY package.json ./ ENV NODE_ENV=production RUN npm i --omit=dev FROM base AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NODE_ENV=production \ NEXT_TELEMETRY_DISABLED=1 \ SKIP_REDIS="true" ARG BASE_URL NEXT_PUBLIC_BASE_URL NEXT_PUBLIC_STRIPE_PUBLIC_KEY ENV BASE_URL=$BASE_URL \ NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL \ NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY \ STRIPE_SECRET_KEY="mock" \ STRIPE_WEBHOOK_SECRET="mock" RUN SKIP_ENV_VALIDATION=1 npm run build FROM base AS runner WORKDIR /app ENV NODE_ENV=production \ NEXT_TELEMETRY_DISABLED=1 \ SKIP_REDIS="false" \ PORT=3000 ARG BASE_URL POSTGRES_PASSWORD POSTGRES_DB PGHOST PGPORT JWT_SECRET BACKENDSERVER_URL STRIPE_SECRET_KEY \ NEXT_PUBLIC_STRIPE_PUBLIC_KEY STRIPE_WEBHOOK_SECRET FIC_CLIENT_ID FIC_ACCESS_TOKEN FIC_COMPANY_ID ARUBA_USER \ ARUBA_PASS EXP_API_USER EXP_API_PASS KEYDB_URL TILES_URL SKEBBY_USER SKEBBY_PASS STORAGE_URL STORAGE_TOKEN \ NEXT_PUBLIC_BASE_URL INTERNAL_BASE_URL POSTGRES_USER ENV BASE_URL=$BASE_URL \ NEXT_PUBLIC_BASE_URL=$NEXT_PUBLIC_BASE_URL \ INTERNAL_BASE_URL=$INTERNAL_BASE_URL \ PGHOST=$PGHOST \ POSTGRES_DB=$POSTGRES_DB \ PGPORT=$PGPORT \ POSTGRES_USER=$POSTGRES_USER \ POSTGRES_PASSWORD=$POSTGRES_PASSWORD \ JWT_SECRET=$JWT_SECRET \ BACKENDSERVER_URL=$BACKENDSERVER_URL \ STRIPE_SECRET_KEY=$STRIPE_SECRET_KEY \ NEXT_PUBLIC_STRIPE_PUBLIC_KEY=$NEXT_PUBLIC_STRIPE_PUBLIC_KEY \ STRIPE_WEBHOOK_SECRET=$STRIPE_WEBHOOK_SECRET \ FIC_CLIENT_ID=$FIC_CLIENT_ID \ FIC_ACCESS_TOKEN=$FIC_ACCESS_TOKEN \ FIC_COMPANY_ID=$FIC_COMPANY_ID \ ARUBA_USER=$ARUBA_USER \ ARUBA_PASS=$ARUBA_PASS \ EXP_API_USER=$EXP_API_USER \ EXP_API_PASS=$EXP_API_PASS \ KEYDB_URL=$KEYDB_URL \ TILES_URL=$TILES_URL \ SKEBBY_USER=$SKEBBY_USER \ SKEBBY_PASS=$SKEBBY_PASS \ REVALIDATION_SECRET="SWKpgaaLfsyeqV1eOT0WG7TUFBewir8kJXure3O37ki8Lt4Z4IiEgBW4zPHDdM5c" \ STORAGE_URL=$STORAGE_URL \ STORAGE_TOKEN=$STORAGE_TOKEN RUN addgroup -g 1001 -S nodejs RUN adduser -S nextjs -u 1001 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 CMD ["node", "server.js"]