Skip to main content

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

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kross-1.0.4.tar.gz (9.3 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kross-1.0.4-py3-none-any.whl (9.3 MB view details)

Uploaded Python 3

kross-1.0.4-py2-none-any.whl (9.3 MB view details)

Uploaded Python 2

File details

Details for the file kross-1.0.4.tar.gz.

File metadata

  • Download URL: kross-1.0.4.tar.gz
  • Upload date:
  • Size: 9.3 MB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for kross-1.0.4.tar.gz
Algorithm Hash digest
SHA256 3dab8e1f034a1aca2a9dc7041e655c10ea376d7497deba8b1a37c3fb8a37918b
MD5 b33e6650cf5017889942c6844fdfc2b5
BLAKE2b-256 22dc06af97c6165174b07650fa22d6514eedd6c0f4c7e6c54ebcc0c7702d5f81

See more details on using hashes here.

File details

Details for the file kross-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: kross-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for kross-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 4780996de2b83d1cd2343e99a32cc44b3dda8a4fcc7b9999ac60a1bcea66eed7
MD5 63b22e0861ec5411e192167c82e7d439
BLAKE2b-256 614d6a592789a34e424206e282af314f608acc07107087d72a8bdc46b0e180db

See more details on using hashes here.

File details

Details for the file kross-1.0.4-py2-none-any.whl.

File metadata

  • Download URL: kross-1.0.4-py2-none-any.whl
  • Upload date:
  • Size: 9.3 MB
  • Tags: Python 2
  • Uploaded using 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

File hashes

Hashes for kross-1.0.4-py2-none-any.whl
Algorithm Hash digest
SHA256 1059e3ee9049dd2aa0f765e1850f82539f58f7f2cd618dddb35c4c8cae156688
MD5 3046cbed3e496b897db7803c23fae0a0
BLAKE2b-256 8b9bf7b62fa35f51a3824224381b7c81591abe6316beda2d7b084b1ad1ac5c85

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page