FROM node:20-bookworm AS builder WORKDIR /app RUN corepack enable && corepack prepare npm@10.5.0 --activate COPY package.json package-lock.json turbo.json tsconfig.base.json ./ COPY apps ./apps COPY packages ./packages # NEXT_PUBLIC_* vars must be present at build time — they are inlined into JS bundles ARG NEXT_PUBLIC_API_URL ARG NEXT_PUBLIC_MARKETING_URL ARG NEXT_PUBLIC_MARKETPLACE_URL ARG NEXT_PUBLIC_DASHBOARD_URL ARG NEXT_PUBLIC_ADMIN_URL ARG NEXT_PUBLIC_PUBLIC_SITE_DOMAIN ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL \ NEXT_PUBLIC_MARKETING_URL=$NEXT_PUBLIC_MARKETING_URL \ NEXT_PUBLIC_MARKETPLACE_URL=$NEXT_PUBLIC_MARKETPLACE_URL \ NEXT_PUBLIC_DASHBOARD_URL=$NEXT_PUBLIC_DASHBOARD_URL \ NEXT_PUBLIC_ADMIN_URL=$NEXT_PUBLIC_ADMIN_URL \ NEXT_PUBLIC_PUBLIC_SITE_DOMAIN=$NEXT_PUBLIC_PUBLIC_SITE_DOMAIN RUN npm install RUN npm run db:generate RUN npm run build FROM node:20-bookworm AS runner WORKDIR /app ENV NODE_ENV=production RUN corepack enable && corepack prepare npm@10.5.0 --activate COPY --from=builder /app/package.json /app/package-lock.json /app/turbo.json /app/tsconfig.base.json ./ COPY --from=builder /app/node_modules ./node_modules COPY --from=builder /app/apps ./apps COPY --from=builder /app/packages ./packages EXPOSE 3000 3001 3002 3003 4000 CMD ["npm", "run", "start", "--workspace", "@rentaldrivego/api"]