Skip to main content

kross

A simple CLI to "multi-arch all the things"

What is kross ?

kross is a tool to automate the build of Docker images for multiple architectures without any changes required on your code

Quick start

  • Install via pip

pip install kross

  • Initialize it (once)

kross init

  • Update your docker build commands

Before

docker build -t me/myapp:vX.X.X ...args... path/to/docker/context
docker push me/myapp:vX.X.X

After

kross build -t me/myapp:vX.X.X ...args... path/to/docker/context
kross push me/myapp:vX.X.X

Why kross ?

Kross is born from a Raspberry Pi passionnate developer. Because Raspberry Pi are arm-based and 90% of images on Dockerhub are amd64-based, developers have to duplicate/tweak all Dockerfiles so the image will work on it and avoid the too much popular cannot execute binary file: Exec format error.

To know more, read the full article.

How kross is working ?

kross is based upon the qemu library to build multiple architectures images on a amd64-based host machine. After all images are built and pushed to a docker registry, a manifest list is pushed too so that users can pull images based on their architectures in a seamless way.

Supported architectures

kross will try to build images for the following architectures:

  • amd64
  • arm32v6
  • arm32v7
  • arm64v8
  • ppc64le
  • s390x
  • i386

Run the example

  • Install kross pip install kross

  • Check your machine configuration kross init

  • Run the kross build kross build -t kross-world:v0.1.0 https://raw.githubusercontent.com/pcorbel/kross/master/docs/example/Dockerfile

  • Run the kross push kross push kross-world:v0.1.0

  • Check images availability on your Dockerhub account

  • Run your image anywhere

docker run --rm kross-world:v0.1.0

Example image available here

Tips and tricks

To know exactly what is happening while kross is working export KROSS_VERBOSE=true

Metadata

Release files for kross 1.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kross 1.0.4
File Size Uploaded
kross-1.0.4.tar.gz 9.3 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for kross 1.0.4
File Interpreter ABI Platform
kross-1.0.4-py3-none-any.whl Python 3 none any Details
kross-1.0.4-py2-none-any.whl Python 2 none any Details

Total release size: 27.8 MB

Release files / kross-1.0.4.tar.gz

Download URL kross-1.0.4.tar.gz
Size 9.3 MB
Tags Source
SHA-256 checksum
How to use checksums
3dab8e1f034a1aca2a9dc7041e655c10ea376d7497deba8b1a37c3fb8a37918b
BLAKE2b-256 checksum
How to use checksums
22dc06af97c6165174b07650fa22d6514eedd6c0f4c7e6c54ebcc0c7702d5f81
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

Release files / kross-1.0.4-py3-none-any.whl

Download URL kross-1.0.4-py3-none-any.whl
Size 9.3 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4780996de2b83d1cd2343e99a32cc44b3dda8a4fcc7b9999ac60a1bcea66eed7
BLAKE2b-256 checksum
How to use checksums
614d6a592789a34e424206e282af314f608acc07107087d72a8bdc46b0e180db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

Release files / kross-1.0.4-py2-none-any.whl

Download URL kross-1.0.4-py2-none-any.whl
Size 9.3 MB
Tags Python 2
SHA-256 checksum
How to use checksums
1059e3ee9049dd2aa0f765e1850f82539f58f7f2cd618dddb35c4c8cae156688
BLAKE2b-256 checksum
How to use checksums
8b9bf7b62fa35f51a3824224381b7c81591abe6316beda2d7b084b1ad1ac5c85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.16

Release history Release notifications | RSS feed

This release

1.0.4 This release

3 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page