FROM node:lts AS deps WORKDIR /workspace ENV CI=true ENV ADMINFRONT_BUILD_OUT_DIR=/workspace/adminfront/dist RUN corepack enable && corepack prepare pnpm@10.5.2 --activate COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ COPY common ./common COPY adminfront ./adminfront ARG VITE_ADMIN_PUBLIC_URL ARG VITE_OIDC_AUTHORITY ARG VITE_OIDC_CLIENT_ID ARG ORGFRONT_URL ENV VITE_ADMIN_PUBLIC_URL=$VITE_ADMIN_PUBLIC_URL ENV VITE_OIDC_AUTHORITY=$VITE_OIDC_AUTHORITY ENV VITE_OIDC_CLIENT_ID=$VITE_OIDC_CLIENT_ID ENV ORGFRONT_URL=$ORGFRONT_URL RUN pnpm install --frozen-lockfile --ignore-scripts FROM deps AS dev WORKDIR /workspace/adminfront ENV NODE_ENV=development EXPOSE 5173 CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0", "--port", "5173"] FROM deps AS build WORKDIR /workspace/adminfront RUN npm run build FROM node:24-alpine AS production WORKDIR /app ENV NODE_ENV=production ENV FRONTEND_DIST_DIR=/app/dist ENV PORT=5173 COPY scripts/serve_frontend_prod.mjs ./serve_frontend_prod.mjs COPY --from=build /workspace/adminfront/dist ./dist EXPOSE 5173 CMD ["node", "./serve_frontend_prod.mjs"]