FROM node:20-alpine AS builder WORKDIR /app RUN npm install -g pnpm COPY pnpm-workspace.yaml package.json pnpm-lock.yaml ./ 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"]