Skip to content

A Docker image with the latest kraken-cli and various other software packages and language runtimes.

Notifications You must be signed in to change notification settings

kraken-build/kraken-base-image

Repository files navigation

kraken-base-image

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

Versioning

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

Versioning rules

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.

Image contents

General tools

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

Language runtimese and tools

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

Container tools

Software Installed via Version
Docker apt-get (docker.io package) latest
Docker Buildx DockerHub latest
manifest-tool GitHub releases (formula) 2.1.7

Kubernetes

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

Developemnt

CI

We use TestFlows-GitHub-Hetzner-Runners on this repository.

About

A Docker image with the latest kraken-cli and various other software packages and language runtimes.

Resources

Stars

Watchers

Forks

Packages