This repository contains the infrastructure for the Beman project's Docker images. See the organization's GitHub Packages page for more information.
This project builds the following images intended for use by CI for Beman libraries:
ghcr.io/bemanproject/infra-containers-gcctrunk(rebuilt weekly)latest/15/15.2.014/14.3.013/13.4.112/12.5.011/11.5.0
ghcr.io/bemanproject/infra-containers-clangtrunk(rebuilt weekly)latest/21/21.1.120/20.1.819/19.1.718/18.1.817/17.0.6
ghcr.io/bemanproject/infra-containers-clang-p2996latest/trunk(rebuilt weekly)
It also builds the following images intended for use by Docker codespaces:
ghcr.io/bemanproject/infra-containers-devcontainer-gcclatest/14
ghcr.io/bemanproject/infra-containers-devcontainer-clanglatest/20
Along with the compiler version specified in the tag, these images contain CMake 4.1.1 (except for the clang-p2996 image, which contains CMake 4.0.3) and recent versions of ninja and git.
The CI images are based on Gentoo Linux for the following reasons:
- Its package repository has fast turnaround of new compiler and tool versions, allowing us to ensure we can always provide up-to-date versions
- It provides binary caching of packages, improving image build times relative to needing to build everything from source
- It gives us an easy way to build compiler forks from source, such as Bloomberg's fork of clang that adds support for reflection, by editing ebuild files
The devcontainer images are currently based on Ubuntu so that we can use images from microsoft/devcontainers as a base.
If these images are missing a tool that you need, either:
- Submit a pull request adding an
emergecommand toDockerfile.testandDockerfile.fromsourcewith the Gentoo package for that tool (preferred), or: - Install the tool inline in the CI job:
emerge-webrsyncto restore the package data that the image build process removes to save spaceemerge <your-package-name>to install the tool itself.