# Build stage - using pnpm for workspace dependency resolution
FROM node:20-alpine AS build

# Install pnpm
RUN npm install -g pnpm

WORKDIR /workspace

# Copy workspace configuration files
COPY pnpm-workspace.yaml package.json pnpm-lock.yaml* ./

# Copy shared packages (required for workspace:* dependencies)
COPY packages/ ./packages/

# Copy the app component
COPY apps/community-ui/ ./apps/community-ui/

# Install dependencies using pnpm (resolves workspace:* correctly)
RUN pnpm install --frozen-lockfile || pnpm install

# Build the app
WORKDIR /workspace/apps/community-ui
RUN pnpm build

# Production stage
FROM nginx:alpine

# Copy built assets
COPY --from=build /workspace/apps/community-ui/dist /usr/share/nginx/html
COPY apps/community-ui/nginx.conf /etc/nginx/conf.d/default.conf

EXPOSE 3002

CMD ["nginx", "-g", "daemon off;"]
