New React app at apps/community-ui (port 3002) using shared packages. - OTP-only login flow via @persona-community-5/auth - Responsive persona card grid with generating state overlays - Create persona panel (Sheet sliding from right) with description, gender, name - Detail page with banner header, avatar, image gallery with lightbox, video players - Real-time updates via useEventChannel subscribed to channel:personas Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
35 lines
844 B
Docker
35 lines
844 B
Docker
# 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;"]
|