FROM node:18-alpine

WORKDIR /app

# Instalar dependencias primero (mejor cache de capas)
COPY backend/package*.json ./
RUN npm install --production

# Copiar el código del backend
COPY backend/ ./

# Copiar el frontend empaquetado (no se monta como volumen en producción)
COPY frontend/ ./frontend/

# Script de entrada: crea datos/carpetas por defecto si no existen en el volumen
RUN chmod +x ./docker-entrypoint.sh

EXPOSE 3000

ENTRYPOINT ["./docker-entrypoint.sh"]
CMD ["node", "server.js"]
