Spaces:
Sleeping
Sleeping
| FROM node:20-slim | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| # Build timestamp: 2026-01-13T03:05 | |
| WORKDIR /app | |
| # Install esbuild globally | |
| RUN npm install -g esbuild | |
| # Copy backend package.json and install deps for bundling | |
| COPY trigo-web/backend/package.json ./package.json | |
| RUN npm install | |
| # Copy backend source | |
| RUN mkdir -p backend backend/dist/backend/src | |
| COPY trigo-web/backend/src/ ./backend/src/ | |
| # Copy inc folder (needed for esbuild) | |
| COPY trigo-web/inc/ ./inc/ | |
| # Bundle EVERYTHING into one file (no external deps) | |
| RUN esbuild backend/src/server.ts --bundle --platform=node --target=node20 --format=esm \ | |
| --outfile=backend/dist/backend/src/server.js | |
| # Copy frontend dist | |
| COPY trigo-web/app/dist/ ./app/dist/ | |
| # Copy env files | |
| COPY trigo-web/backend/.env ./backend/.env | |
| COPY trigo-web/backend/.env.local ./backend/.env.local | |
| # Verify server file | |
| RUN ls -la backend/dist/backend/src/server.js | |
| ENV PORT=7860 | |
| ENV HOST=0.0.0.0 | |
| ENV NODE_ENV=production | |
| EXPOSE 7860 | |
| CMD ["node", "backend/dist/backend/src/server.js"] | |