Files
c6ba2a75e2 ci: containerize + arcd GHCR semver build (DOKS deploy) (#2)
* ci: containerize + arcd GHCR semver build (DOKS deploy)

Add multi-stage Dockerfile (npm Vite build -> minimal node:22-slim static
server via serve, no nginx/caddy, port 3000) and .github/workflows/build.yml
that builds+pushes ghcr.io/hanzoai/computer on v* tags via the canonical
hanzoai/.github docker-build reusable workflow on the self-hosted arcd fleet.
Ships only the static SPA (api/ Vercel functions excluded). Semver-only tags.

* ci: serve via canonical hanzoai/spa (static SPA, one way)

---------

Co-authored-by: hanzo-dev <[email protected]>
2026-06-19 16:22:44 -07:00

13 lines
449 B
Docker

# syntax=docker/dockerfile:1
# hanzo.computer (Vite + React 19 SPA) — served via the canonical hanzoai/spa
# static server (one way for static SPAs). No node runtime in the final stage.
# The repo api/ dir holds Vercel serverless funcs (hosted deploy only); the
# container ships ONLY the static SPA bundle.
FROM node:22-slim AS build
WORKDIR /app
COPY . .
RUN npm ci
RUN npm run build
FROM ghcr.io/hanzoai/spa
COPY --from=build /app/dist /public