# FROM node:18-alpine # WORKDIR /app # RUN npm install -g pnpm # COPY . . # # Install dependencies and build # RUN pnpm install --frozen-lockfile && \ # cd apps/dashboard && \ # pnpm build || { echo "Build failed! Error output above."; exit 1; } # EXPOSE 5004 # ENV NODE_ENV=production # CMD [ "pnpm", "dashboard:start" ] FROM node:18-alpine AS builder WORKDIR /app RUN npm install -g pnpm COPY package.json . COPY pnpm-lock.yaml . RUN pnpm install --frozen-lockfile COPY . . # Set environment variables ENV IS_SELFHOSTED=true ENV DEPLOYMENT_PROVIDER=docker ENV PUBLIC_SUPABASE_URL=$PUBLIC_SUPABASE_URL ENV PUBLIC_SUPABASE_ANON_KEY=$PUBLIC_SUPABASE_ANON_KEY ENV PRIVATE_SUPABASE_SERVICE_ROLE=$PRIVATE_SUPABASE_SERVICE_ROLE ENV PRIVATE_APP_HOST=$PRIVATE_APP_HOST ENV PRIVATE_APP_SUBDOMAINS=$PRIVATE_APP_SUBDOMAINS ENV UNSPLASH_API_KEY=$UNSPLASH_API_KEY ENV OPENAI_API_KEY=$OPENAI_API_KEY ENV PUBLIC_SERVER_URL=$PUBLIC_SERVER_URL ENV PUBLIC_IP_REGISTRY_KEY=$PUBLIC_IP_REGISTRY_KEY ENV NODE_OPTIONS="--max-old-space-size=10240" WORKDIR /app/apps/dashboard RUN pnpm install --frozen-lockfile RUN IS_SELFHOSTED=true DEPLOYMENT_PROVIDER=docker pnpm build RUN pnpm prune --production FROM node:18-alpine WORKDIR /app COPY --from=builder /app/apps/dashboard/build build/ COPY --from=builder /app/apps/dashboard/node_modules node_modules/ COPY package.json . EXPOSE 3004 ENV NODE_ENV=production CMD [ "node", "build" ]