Skip to main content

Module base

Module base 

Source
Expand description

The base image every QCode container comes from, and the places inside it every other layer agrees on.

A workspace’s plain shell runs in this image, a git clone runs in it, and every profile image is FROM it with a harness installed on top. So it carries exactly what those need — a Node runtime the harnesses install with, git, certificates, a shell — the built-in apps a file of the workspace is opened with, and the directories the rest of QCode mounts onto.

A profile can have its image built on another system than Debian; Os is that choice, with a base image of its own for each system, and what each system cannot carry or run.

Three things live here. paths is the contract: where the workspace, its material and the home directory are, and what a container runs to stay up. apps is what the image carries for opening files: which program opens which file, and with which words. ensure is the one piece of work: build the image when the machine has not got it, or has an older one, and say so line by line while it happens.

Modules§

apps
The built-in apps: the programs the base image carries for opening a workspace’s files, which file each of them opens, and the exact command line each is started with.
paths
Where things are inside every QCode container, what a container runs to stay up, and the shell that gives the person running it a name when the image has none for them.

Enums§

Failure
Why the base image is not there.
Gap
A program the built-in apps or the image’s tools use that a system’s image does not carry.
Os
A system a profile’s image is built on.
Outcome
What ensure did.
Presence
What the machine has under the base image’s name.
Refusal
Why a harness is not offered on a system: what was measured when it was tried there.

Constants§

CONTAINERFILE
The Containerfile the base image is built from, carried inside the binary so an installed QCode needs no files beside it.
REVISION_LABEL
The label the built image carries its revision in.

Functions§

containerfile
The Containerfile as the engine is given it: the description plus the label that says which description it was.
containerfile_of
The Containerfile of os’s base image as the engine is given it, labelled the same way.
digest
FNV-1a over the bytes of text: a short digest that tells two descriptions apart, where nothing depends on it being hard to forge.
ensure
Makes sure BASE_IMAGE is on the machine and is the one described here, building it when it is not.
ensure_os
Makes sure os’s base image is on the machine and is the one described here, building it when it is not, the way ensure does for Debian’s.
presence
What the machine has under BASE_IMAGE, Debian’s base image.
presence_of
What the machine has under the name of os’s base image.
revision
Which description the image on the machine should have been built from.
revision_of
Which description os’s base image should have been built from: the digest of its own Containerfile, so a change to one system’s file rebuilds that system’s image and no other.