Skip to content

Latest commit

 

History

History
69 lines (43 loc) · 2.1 KB

File metadata and controls

69 lines (43 loc) · 2.1 KB

GAMEOFTREES (GoT) BUILD CONTAINERS

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

Dockerfiles

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).

Libc (Debian Trixie)

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.

Musl (Alpine)

See: ./got-alpine.Dockerfile

Similar to the Libc image, this holds apk definitions for setting up the compilation environment.

Building the Images

There is a wrapper script, ./build.sh which accepts the following arguments:

  • libc -- which will compile the libc environment
  • musl -- 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 is libc
  • thomasadam/got-alpine:latest -- if the build is musl

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.

Pushing the Images

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.