FROM node:22-alpine AS mobile-builder WORKDIR /src/mobile ARG VITE_API_ORIGIN ARG VITE_WS_ORIGIN ENV VITE_API_ORIGIN=${VITE_API_ORIGIN} ENV VITE_WS_ORIGIN=${VITE_WS_ORIGIN} COPY mobile/package.json mobile/package-lock.json ./ RUN npm ci COPY mobile/ ./ RUN npm run build:h5 FROM node:22-alpine AS admin-builder WORKDIR /src/admin ENV CI=true ARG VITE_ADMIN_API_URL=/admin/v1 ENV VITE_GLOB_API_URL=${VITE_ADMIN_API_URL} RUN corepack enable COPY admin/package.json admin/pnpm-lock.yaml admin/pnpm-workspace.yaml ./ COPY admin/.npmrc ./ COPY admin/internal ./internal COPY admin/packages ./packages COPY admin/scripts ./scripts COPY admin/apps/web-ele ./apps/web-ele RUN pnpm install --frozen-lockfile RUN pnpm --filter @vben/web-ele build FROM nginx:1.28-alpine COPY --from=mobile-builder /src/mobile/dist/build/h5 /srv/mobile COPY --from=admin-builder /src/admin/apps/web-ele/dist /srv/admin COPY deploy/nginx.conf.template /etc/nginx/templates/default.conf.template EXPOSE 80 443