FROM node:18.12-alpine as build
WORKDIR /app/kpt-system-web
ENV NODE_OPTIONS="--max-old-space-size=4096"
COPY . .
RUN mkdir -p /root/.local/share/pnpm/store/v3/files && chown -R $(whoami) /root/.local/share/pnpm/store/v3/
RUN npm install -g pnpm && npm install -g typescript@5.1.6
RUN echo "declare module 'lodash-es';" > types.d.ts
RUN pnpm config set registry https://registry.npmmirror.com
RUN pnpm update vue-demi@latest
RUN pnpm install --fetch-timeout 60000
RUN pnpm build 

FROM nginx:alpine as prod
WORKDIR /app/kpt-system-web
COPY --from=build /app/kpt-system-web/dist/ /usr/share/nginx/html/
COPY --from=build /app/kpt-system-web/nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80