Files
andwati.com/Dockerfile
T
andwati bf4ef2aa29 Add Dockerfile for self-hosted deployment, bump build.sh to Zola 0.23.1
Adds a multi-stage Dockerfile (Node for llms.txt generation, the
official Zola image to build, static-web-server to serve) for
deploying via Dokploy/Docker instead of Cloudflare Pages. This is an
additional path, not a replacement - wrangler.toml and the Cloudflare
build.sh remain in place as an option.

Also bumps build.sh's pinned ZOLA_VERSION from 0.22.1 to 0.23.1: the
prior commit migrated every template to Tera v2 syntax (components,
spread operator, native slicing), which 0.22.1 can't parse - confirmed
by a live Cloudflare build failure on this branch. Keeping build.sh
and the Dockerfile on the same Zola version avoids maintaining two
template dialects across the two deploy paths.

Verified: `docker build` succeeds, the container serves the homepage,
a post, the youtube embed, and a proper 404; `build.sh` also runs
clean standalone (simulating the Cloudflare build) and produces a
fully populated public/.
2026-08-07 10:54:38 +03:00

22 lines
671 B
Docker

# Multi-stage build: generate llms.txt with Node, build the site with Zola,
# then serve the static output with static-web-server.
#
# This is the Dokploy/self-hosted deployment path. It's independent of the
# Cloudflare Pages path (`npm run deploy` / wrangler.toml) - that stays in
# place as an option, this doesn't replace it.
FROM node:22-slim AS llms
WORKDIR /project
COPY . .
RUN node scripts/generate-llms.mjs
FROM ghcr.io/getzola/zola:v0.23.1 AS zola
WORKDIR /project
COPY . .
COPY --from=llms /project/static/llms.txt static/llms.txt
RUN ["/zola", "build"]
FROM ghcr.io/static-web-server/static-web-server:2
COPY --from=zola /project/public /public
EXPOSE 80