Spaces:
Running
Running
| FROM python:3.11-slim AS python-deps | |
| WORKDIR /app | |
| COPY requirements.txt ./ | |
| RUN pip install --no-cache-dir -r requirements.txt | |
| FROM node:20-slim AS node-deps | |
| WORKDIR /app | |
| COPY package.json package-lock.json ./ | |
| RUN npm ci --production=false | |
| FROM node:20-slim AS builder | |
| WORKDIR /app | |
| COPY --from=node-deps /app/node_modules ./node_modules | |
| COPY app/ ./app/ | |
| COPY components/ ./components/ | |
| COPY hooks/ ./hooks/ | |
| COPY lib/ ./lib/ | |
| COPY public/ ./public/ | |
| COPY package.json package-lock.json tsconfig.json next.config.ts postcss.config.mjs eslint.config.mjs .eslintrc.json next-env.d.ts metadata.json ./ | |
| ENV NEXT_TELEMETRY_DISABLED=1 | |
| ARG CACHEBUST=3 | |
| RUN npm run build | |
| FROM python:3.11-slim AS runner | |
| WORKDIR /app | |
| # Copy Node.js 20 binary from the build stage (apt nodejs is too old) | |
| COPY --from=builder /usr/local/bin/node /usr/local/bin/node | |
| COPY --from=builder /usr/local/lib/node_modules /usr/local/lib/node_modules | |
| COPY --from=python-deps /usr/local/lib/python3.11/site-packages /usr/local/lib/python3.11/site-packages | |
| COPY --from=python-deps /usr/local/bin /usr/local/bin | |
| COPY --from=builder /app/public ./public | |
| COPY --from=builder /app/.next/standalone ./ | |
| COPY --from=builder /app/.next/static ./.next/static | |
| COPY origami_server/ ./origami_server/ | |
| COPY training/ ./training/ | |
| COPY start.sh ./ | |
| RUN chmod +x start.sh | |
| ENV NODE_ENV=production | |
| ENV NEXT_TELEMETRY_DISABLED=1 | |
| ENV PORT=7860 | |
| ENV HOSTNAME=0.0.0.0 | |
| EXPOSE 7860 | |
| EXPOSE 8000 | |
| CMD ["./start.sh"] | |