32 lines
982 B
Docker
32 lines
982 B
Docker
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
|