# App Node (frontend + API). Imagen ligera: solo lo necesario en runtime.
FROM node:22-slim
WORKDIR /app

# Dependencias (solo prod). Se cachea si package.json no cambia.
COPY package.json ./
RUN npm install --omit=dev

# Código y estáticos
COPY server.js ./
COPY public ./public

# Datos que la app usa en runtime (NO el OSM ni el zip: eso es solo para construir el grafo de OTP)
COPY datos/FeedVehiculos.pb ./datos/FeedVehiculos.pb
COPY datos/gtfs/stop_times.txt ./datos/gtfs/stop_times.txt

ENV PORT=8811
# OTP vive en otro contenedor; se resuelve por nombre de servicio (docker-compose)
ENV OTP_URL=http://otp:8080/otp/routers/default/index/graphql
# La clave de Euskalmet NO va en la imagen: se inyecta por env (EUSKALMET_SECRET_B64)

EXPOSE 8811
CMD ["node", "server.js"]
