FROM node:20-slim # Set noninteractive installation ENV DEBIAN_FRONTEND=noninteractive # Install build dependencies RUN apt-get update && apt-get install -y \ curl \ git \ && rm -rf /var/lib/apt/lists/* # Create app directory WORKDIR /app # Copy entire trigo-web project COPY trigo-web/ ./ # Install all dependencies (root, app, backend) RUN npm install && \ cd app && npm install && \ cd ../backend && npm install && \ cd .. # Build jison parsers (required for the game) RUN npm run build:parsers # Build frontend (generates dist folder) RUN cd app && npm run build # Build backend TypeScript RUN cd backend && npm run build # Set environment variables for Hugging Face Spaces ENV PORT=7860 ENV HOST=0.0.0.0 ENV NODE_ENV=production # Expose port 7860 (required by Hugging Face Spaces) EXPOSE 7860 # Start backend server (which will also serve frontend static files) CMD ["npm", "run", "start:prod"]