Skip to content

El build de Docker produce un frontend sin mapas: el mundo no se dibuja #19

Description

@leocagli

Síntoma

Se despliega el juego con Docker siguiendo el repo, el jugador entra, y el mundo no se dibuja. El personaje y el HUD aparecen, pero el terreno queda vacío. En la consola del navegador:

404 /maps_optimized/mapa_1.json
404 /maps_optimized/mapa_5.json
404 /maps_optimized/mapa_8.json
...

Causa

frontend/public/maps_optimized/ no está en el repo (está en .gitignore). Se genera con:

cd server && pnpm export-frontend-maps

Ese script lee los 294 mapas de server/mapas_source/ y escribe los optimizados en frontend/public/maps_optimized/.

El problema es que el Dockerfile del frontend no ejecuta ese paso. Hace pnpm build de Next, que copia public/ tal como esté. Si la carpeta no fue generada antes, la imagen queda sin los mapas y el cliente pide archivos que no existen.

Es un fallo silencioso: el build termina bien, el contenedor arranca bien, la página carga bien. Falla recién cuando un jugador entra al mundo.

Cómo reproducir

Clonar limpio y construir el frontend con Docker sin generar los mapas antes. Entrar al juego y mirar la consola.

Propuesta

Cualquiera de estas, en orden de preferencia:

  1. Que el Dockerfile del frontend genere los mapas antes del pnpm build. Requiere que server/mapas_source/ esté disponible en el contexto de build, así que hay que pensar el contexto o hacerlo multi stage.
  2. Un script de setup documentado en el README que haya que correr antes de cualquier build, y que el propio build falle con un mensaje claro si la carpeta no está.
  3. Versionar los mapas optimizados. Son 20 MB, lo cual no es ideal en git, pero elimina el paso y el modo de fallo.

Mínimo aceptable: que el build falle ruidosamente en vez de producir una imagen rota.

Criterios de aceptación

  • Un clon limpio y un build de Docker producen un frontend que dibuja el mundo
  • Si faltan los mapas, el build falla con un mensaje que explica qué correr
  • El README documenta el paso, si sigue siendo manual

Archivos relevantes

  • frontend/Dockerfile
  • server/src/scripts/exportFrontendOptimizedMaps.ts
  • frontend/.gitignore (excluye maps_optimized)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbountyIssue con recompensa asignadabugSomething isn't workingdeployDespliegue, Docker e infraestructuragrantfoxPublicada en la campana de GrantFoxreward-50-usdRecompensa 50 USD - complejidad media

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions