~kdsch/containerized-build

Dockerfile: bump alpine version to 3.20.1
envsetup.sh: let WORKDIR=$PWD

This seems to work. It has the advantage that the paths within the
container are the same as those outside the container. This avoids
breaking the language server (clangd) that runs outside the container.
Dockerfile: add comments with URLs; add --no-cache
Dockerfile: upgrade to alpine 3.20.0
envsetup.sh: let podman_wrapper be a function, not a variable
envsetup.sh: tag container images with Dockerfile hash

When working with multiple branches or worktrees in where the Dockerfile
differs, we want to use the container image that goes with the right
Dockerfile. A simple way to do this is to tag the container with the
Git object hash of the Dockerfile.

This is too sensitive: it responds to syntactic changes that don't affect
semantics. But it prevents us from using the wrong image.
README.md: add Maintenance section
envsetup.sh: replace function-based wrapping with aliases

This exposes the user to the interfaces of the build system, which
reduces our responsibility to provide an interface. We don't provide
a build system interface: we just containerize the build system in
a convenient way.
meson.build: correct the name of a source file
Dockerfile: remove binutils from the list of packages to install

It's already a dependency of gcc, so we need not list it.
Add LICENSE (public domain)
Dockerfile: upgrade Alpine from 3.17.1 to 3.19.1
replace scripts/* with envsetup.sh
Dockerfile: reduce container image size
meson.build: use static linking
app: become hello world
scripts/container: rename to scripts/image
create a working build image
Do not follow this link