# ============================================================================= # Prueba local de la imagen de producción. # # docker compose up --build # → http://localhost:3000 # # No es el archivo con el que se despliega en Coolify: allá la plataforma # construye la imagen y administra el volumen. Esto sirve para comprobar, antes # de subir, que la imagen arranca, que la base sobrevive a un reinicio y que la # sonda de salud responde. Ver docs/DESPLIEGUE.md. # ============================================================================= services: web: build: context: . dockerfile: Dockerfile # Estas dos se hornean en el bundle durante `next build`: pasarlas solo # como environment no tendría efecto en el sitio. args: NEXT_PUBLIC_SITE_URL: "http://localhost:3000" NEXT_PUBLIC_WHATSAPP: "525540348395" image: fspm-web:local container_name: fspm-web ports: - "3000:3000" environment: # Ruta absoluta dentro del contenedor. Debe caer dentro del volumen. DATABASE_URL: "file:/app/data/fspm.db" # Solo para la prueba local. En producción se genera uno nuevo: # openssl rand -base64 48 AUTH_SECRET: "secreto-de-prueba-local-cambialo-en-produccion-por-favor" # Repetidas aquí para que el servidor las tenga; el bundle del navegador # ya las trae horneadas desde build.args. NEXT_PUBLIC_SITE_URL: "http://localhost:3000" NEXT_PUBLIC_WHATSAPP: "525540348395" # Acceso rápido de demostración en /admin/login. En un despliegue real # que alguien vaya a ver, ponlo en "false". DEMO_ACCESO_RAPIDO: "true" volumes: # Volumen nombrado: es lo que hace que los leads capturados sobrevivan a # `docker compose up --build`. Si esta línea se borra, cada # reconstrucción empieza otra vez con la base de demostración. - fspm-datos:/app/data restart: unless-stopped # La sonda del Dockerfile ya cubre esto; se repite aquí para que # `docker compose ps` muestre el estado sin depender de la imagen. healthcheck: test: ["CMD-SHELL", "wget --quiet --tries=1 --spider http://127.0.0.1:3000/api/salud || exit 1"] interval: 30s timeout: 5s start_period: 60s retries: 3 volumes: fspm-datos: name: fspm-datos