FROM node:20-alpine AS builder WORKDIR /app # Build arguments for environment variables ARG VITE_SOCKET_URL ARG VITE_API_URL ARG VITE_MOBILE_URL # Install pnpm and configure registry RUN npm config set registry https://registry.npmmirror.com && \ npm install -g pnpm && \ pnpm config set registry https://registry.npmmirror.com COPY pnpm-workspace.yaml package.json pnpm-lock.yaml tsconfig.base.json ./ COPY packages/shared ./packages/shared COPY packages/client-screen ./packages/client-screen COPY packages/client-mobile ./packages/client-mobile RUN pnpm install --frozen-lockfile WORKDIR /app/packages/shared RUN pnpm build WORKDIR /app/packages/client-screen RUN pnpm build WORKDIR /app/packages/client-mobile RUN pnpm build # Production stage - Caddy FROM caddy:2-alpine COPY --from=builder /app/packages/client-screen/dist /srv/screen COPY --from=builder /app/packages/client-mobile/dist /srv/mobile COPY deploy/Caddyfile /etc/caddy/Caddyfile EXPOSE 80 443 CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile"]