Container-based infrastructure
Lassi Kortela 16 Aug 2022 10:43 UTC
A suggestion to tame the current ad hoc mess of scheme.org build scripts:
- Each Scheme.org community server should run Docker.
- Each Scheme.org git repo should have a Containerfile.
- For static sites, the container should generate the HTML and other
files and write a tar archive of the results to stdout. The server
can unpack the archive to a place where Nginx can find it. If
needed, successive versions of the tar archive can be stored
somewhere for later retrieval. This is similar to what Heroku does.
- For dynamic sits, the container should run a HTTP server that serves
the site. Nginx reverse proxy can map the in-container server's port
to some URL that is visible to the web-browsing public.
- Updates to git repos can be handled such that a special URL on the
server is pinged each time new code is pushed. In response, the
server pulls a copy of the repo in question and spins up a new
container using the Containerfile in the repo.
Monitoring repos and spinning up containers on each push is what
Continuous Integration systems do. But I'm not sure they support running
servers from the containers.