This repository holds the definition of the Dockerfiles responsible for
setting up the environment used to compile GoT changes in GitHub's CI
pipeline.
For how this is used, see the following files in the got-portable.git repo:
.github/workflows/ci.yml
got-portable compiles against two different environments.
One is a libc-based environment, based off Debian Trixie, which also installs
both clang and gcc so that changes are compiled against those two different
compilers.
The other is a musl-based environment, based off Alpine Linux (edge).
See: ./got-libc.Dockerfile
This Dockerfile holds the package definitions needed to setup the compilation
environment. Note that we compress as many commands into a single RUN
statement so as to avoid having too many squashfs layers in the image, as this
can increase its size.
See: ./got-alpine.Dockerfile
Similar to the Libc image, this holds apk definitions for setting up the
compilation environment.
There is a wrapper script, ./build.sh which accepts the following arguments:
libc-- which will compile the libc environmentmusl-- which will compile the musl environment
Failure to provide one of those will result in the script doing nothing.
The resultant image will be:
thomasadam/got-libc:latest-- if the build islibcthomasadam/got-alpine:latest-- if the build ismusl
Hence, these images are always tagged with latest.
To test these images locally, it's advisable to change the Dockerfile in
fvwm3's git repository, such that its FROM line points to one of the above
images, depending on what needs testing.
The images themselves are hosted on Docker Hub, under the user thomasadam,
hence the prefix to the image names.
Once enough testing has happened, the images can be pushed with:
docker push thomasadam/$XXX
Where, $XXX is the Docker image name in question. Note that write access
will be needed to the Docker Hub account. Contact @thomasadam for this.