The kraken-base-image
provides a Docker image for AMD64 and ARM64 platforms that comes pre-bundled with
a lot of different common programming language runtimes and toolchains, intended to be used as a runtime
image for continuous integration pipelines. The image is currently base on ubuntu:20.04
.
$ docker pull ghcr.io/kraken-build/kraken-base-image:develop
Aside from the develop
tag, exact image versions can be pinned based on git tag --describe
. The Kraken base image
is built from various Ubuntu starting images. We use semantic versioning in the form of x.y.z
and x.y
tags.
Starting Image | Kraken base image tags | Notes |
---|---|---|
ubuntu:20.04 |
develop-ubuntu_20.04 , x.y.z-ubuntu_20.04 , x.y-ubuntu_20.04 |
|
ubuntu:22.04 |
develop , x.y.z , x.y , develop-ubuntu_22.04 , x.y.z-ubuntu_22.04 , x.y-ubuntu_22.04 |
New versions of the base image must adhere to the Semantic Versioning scheme. Any upgraded software that is no longer backwards compatible must be released as a minor version upgrade (we use major version 0). This is to prevent (non backwards-compatible) software ugprades from blocking the release of backwards compatible upgrades or hotfixes.
Only when absolutely necessary, we introduce a branch for hot fixing older versions,. such as 0.17.x
to release versions of
the base image in that minor version range besides a higher minor having already been released.
Software | Installed via | Version |
---|---|---|
ansible | Pipx (Python 3.10) | 9.8.0 |
build-essential | apt-get | latest |
BuildKit | GitHub Releases | 0.15.1 |
clang | apt-get | latest |
cloud-utils | apt-get | latest |
cURL | apt-get | latest |
Git | apt-get | latest |
Git LFS | apt-get | latest |
GraphViz | apt-get | latest |
jq | apt-get | latest |
kraken-wrapper | Pipx (Python 3.10) | 0.38.0 |
libffi | apt-get | latest |
libssl | apt-get | latest |
openssh-client | apt-get | latest |
pkg-config | apt-get | latest |
QEMU (kvm, x86_64, aarch64) | apt-get | latest |
sccache | GitHub releases (formula) | 0.8.1 |
sqlx-cli | cargo | 0.8.0 |
UPX | apt-get | latest |
wget | apt-get | latest |
yq | GitHub releases | 4.44.3 |
Software | Installed via | Version |
---|---|---|
buf | GitHub releases | 1.35.1 |
buffrs | cargo | 0.9.0 |
cargo-deny | cargo | 0.14.24 |
cargo-hack | cargo | 0.6.30 |
cargo-llvm-cov | cargo | 0.6.11 |
cargo-semver-checks | cargo | 0.33.0 |
cmake | apt-get | latest |
gcc, g++ | apt-get | latest |
grcov | GitHub releases (formula) | 0.8.19 |
lcov | apt-get | latest |
llvm | apt-get | latest |
Nix | https://nixos.org/nix/install |
latest |
NodeJS | apt-get (via nodesource install) | 18 |
PDM | Pipx (Python 3.10) | 2.17.3 |
Pipx | Pip (Python 3.10) | 1.6.0 |
Poetry | Pipx (Python 3.10) | 1.8.3 |
protobuf-compiler | GitHub releases (formula) | 3.20.3 |
Python | ppa:deadsnakes/ppa | 3.8, 3.9, 3.10 default, 3.11, 3.12 |
Rust / Cargo | Rustup | 1.79.0 |
rustfmt | rustup | nightly (additionally) |
Rustup | rustup.rs | latest |
Slap (link) | Pipx (Python 3.10) | 1.14.1 |
Terraform | Hashicorp releases | 1.9.3 |
uv | Pipx | 0.2.33 |
Software | Installed via | Version |
---|---|---|
Docker | apt-get (docker.io package) |
latest |
Docker Buildx | DockerHub | latest |
manifest-tool | GitHub releases (formula) | 2.1.7 |
Software | Installed via | Version |
---|---|---|
argocd (CLI) | GitHub releases | 2.12.0 |
conntrack | apt-get | latest |
ContainerNetworkingPlugins (CNI) | GitHub releases | 1.5.1 |
cri-dockerd | GitHub releases | 0.3.14 |
crictl | GitHub releases | 1.30.1 |
Helm | get-helm-3 | latest |
kubectl | apt-get (apt.kubernetes.io ) |
1.30.3 |
minikube | storage.googleapis.com/minikube/releases (docs) |
1.33.1 |
stern | GitHub releases | 1.30.0 |
We use TestFlows-GitHub-Hetzner-Runners on this repository.