Publish as a container
Package the site with a small web server into a container image, for Docker, Podman, Kubernetes or a container hosting service.
Write publish.yaml
targets:
image:
type: container
image: ${REGISTRY}/example-site:latest
server: nginx # or caddy
push: false # true sends it to the registry
# csp: true # also send the security policy the pages need
Publish
hotdog-cms publish image
HotDog builds and checks the site, then builds an image with the site and a small web server (nginx or Caddy), listening on port 8080. It needs Podman or Docker installed (it uses whichever it finds). With push: true, it's sent to the registry in image (sign in first with docker login or podman login).
Run it
docker run -d -p 80:8080 registry.example.org/example-site:latest
Use the image name from your publish.yaml, with ${REGISTRY} filled in.
The web server inside already has the right settings for a HotDog site: the "page not found" page, caching, calendar feeds. With csp: true, it also sends the strict security policy your pages need (see check -csp).
Building images in your own pipeline
If your pipeline builds images itself, context: writes only the image's build folder (the site and a Dockerfile), without building it:
context: build/image

