mirror of
https://github.com/hanzoai/papers.git
synced 2026-10-22 17:20:17 +00:00
One server, one version, one tag spelling. v0.5.1 is the only tag carrying 79ac4f9 (serve directory index in place), so stale pins served a DIFFERENT URL contract: docs.hanzo.ai still 301s /x/ -> /x/index.html while every v0.5.1 host does not. Also 0.5.1 (yadota) was never published as a tag, and the -amd64 suffix leaked an architecture (a place) into a version (a value).
19 lines
806 B
Docker
19 lines
806 B
Docker
# papers.hanzo.ai — Next.js static export served by hanzoai/static.
|
|
#
|
|
# Built on Hanzo's own hardware (platform.hanzo.ai → arcd / in-cluster kaniko),
|
|
# never on GitHub builders. Multi-stage: produce the static export, then bake it
|
|
# into the scratch-based hanzoai/static image at /public. The image IS the site.
|
|
FROM node:20-alpine AS build
|
|
WORKDIR /app
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
COPY . .
|
|
ENV NEXT_PUBLIC_BRAND=hanzo
|
|
RUN npm run build # next.config.mjs: output:'export' → writes ./out
|
|
|
|
# hanzoai/static: FROM scratch, ENTRYPOINT ["/static"], serves -root (default
|
|
# /public) on -port (set by the operator Service CR args). Pinned to the tag the
|
|
# cluster already runs (see universe crs/cdn.yaml).
|
|
FROM ghcr.io/hanzoai/static:v0.5.1
|
|
COPY --from=build /app/out /public
|