- Rewrite /play page to use direct dynamic import inside useEffect instead of next/dynamic (fixes BAILOUT_TO_CLIENT_SIDE_RENDERING) - Fix Phaser 3.86 particle API: use direct property assignment instead of setFrequency/setLifespan - Add AI match detection and skip blockchain calls for AI opponents - Pass NEXT_PUBLIC_* build args via Dockerfile/docker-compose so the built client points to the correct API endpoint - Remove obsolete PlayClient.tsx Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
21 lines
642 B
Docker
21 lines
642 B
Docker
FROM node:20-alpine
|
|
WORKDIR /app
|
|
RUN apk add --no-cache git
|
|
RUN npm install -g pnpm@9
|
|
COPY . .
|
|
RUN pnpm install --frozen-lockfile
|
|
RUN pnpm --filter @rps-royale/shared build
|
|
|
|
ARG NEXT_PUBLIC_API_URL
|
|
ARG NEXT_PUBLIC_CONTRACT_ADDRESS
|
|
ARG NEXT_PUBLIC_CHAIN_ID
|
|
ARG NEXT_PUBLIC_HARDHAT_RPC_URL
|
|
ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}
|
|
ENV NEXT_PUBLIC_CONTRACT_ADDRESS=${NEXT_PUBLIC_CONTRACT_ADDRESS}
|
|
ENV NEXT_PUBLIC_CHAIN_ID=${NEXT_PUBLIC_CHAIN_ID}
|
|
ENV NEXT_PUBLIC_HARDHAT_RPC_URL=${NEXT_PUBLIC_HARDHAT_RPC_URL}
|
|
|
|
RUN pnpm --filter @rps-royale/web build
|
|
ENV NODE_ENV=production
|
|
EXPOSE 3000
|
|
CMD ["pnpm", "--filter", "@rps-royale/web", "start"]
|