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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dab8e1f034a1aca2a9dc7041e655c10ea376d7497deba8b1a37c3fb8a37918b
|
|
| MD5 |
b33e6650cf5017889942c6844fdfc2b5
|
|
| BLAKE2b-256 |
22dc06af97c6165174b07650fa22d6514eedd6c0f4c7e6c54ebcc0c7702d5f81
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4780996de2b83d1cd2343e99a32cc44b3dda8a4fcc7b9999ac60a1bcea66eed7
|
|
| MD5 |
63b22e0861ec5411e192167c82e7d439
|
|
| BLAKE2b-256 |
614d6a592789a34e424206e282af314f608acc07107087d72a8bdc46b0e180db
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1059e3ee9049dd2aa0f765e1850f82539f58f7f2cd618dddb35c4c8cae156688
|
|
| MD5 |
3046cbed3e496b897db7803c23fae0a0
|
|
| BLAKE2b-256 |
8b9bf7b62fa35f51a3824224381b7c81591abe6316beda2d7b084b1ad1ac5c85
|