Spaces:
Sleeping
Sleeping
File size: 1,382 Bytes
0ef022d dbdc105 0ef022d c918afd b7cac97 0ef022d b7cac97 0ef022d c918afd 0ef022d dbdc105 c918afd 0ef022d dbdc105 0ef022d c918afd 0ef022d c918afd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # Dockerfile — PolySignal
#
# Estructura multicontexto:
# - backend/ : API Node.js + Express + Socket.io + Prisma
# - frontend/ : SPA Vanilla JS (servida como estaticos)
#
# Pasos:
# 1. Establecer WORKDIR en /app
# 2. Copiar e instalar dependencias del backend
# 3. Copiar e instalar dependencias del frontend y construir (vite build)
# 4. Copiar todo el codigo fuente del backend
# 5. Generar cliente Prisma para SQLite
# 6. Exponer puerto 7860 (requerido por HuggingFace Spaces)
# 7. Iniciar aplicacion con: node backend/src/index.js
#
# Build local: docker build -t polysignal .
# Run local: docker run -p 7860:7860 --env-file .env polysignal
FROM node:24-slim
RUN apt-get update -y && apt-get install -y openssl ca-certificates
WORKDIR /app
ARG CACHEBUST=1
# Instalar dependencias del backend
COPY backend/package*.json ./backend/
RUN cd backend && npm install --only=production
# Instalar dependencias del frontend y construir
COPY frontend/package*.json ./frontend/
RUN cd frontend && npm install
COPY frontend/ ./frontend/
RUN cd frontend && npm run build
# Copiar codigo fuente del backend
COPY backend/ ./backend/
# Generar cliente Prisma
RUN cd backend && npx prisma generate
# Copiar entrypoint
COPY entrypoint.sh ./entrypoint.sh
RUN chmod +x ./entrypoint.sh
# Puerto obligatorio de HuggingFace Spaces
EXPOSE 7860
CMD ["./entrypoint.sh"]
|