Skip to main content

containmint

Create multi-arch containers using native cloud builds.

Q&A

Why another tool?

Most existing tools and services rely on QEMU to perform container builds on other architectures. These builds are much slower, often running 15x longer than native builds.

Additionally, using customizable virtual machines allows for builds which dedicated build services may not support.

How does it work?

Ephemeral virtual machines are provisioned through the Ansible Core CI service [1]. These virtual machines are used to perform native container builds. The resulting images are pushed to a container registry.

After the container images are pushed, a manifest list referencing the container images is created. The manifest list is then pushed to a container registry.

Footnotes

Usage Examples

Configure container registry credentials

The credentials [2] for the container registry [3] are set using environment variables:

export CONTAINMINT_USERNAME = 'my-username'
export CONTAINMINT_PASSWORD = 'my-password'

Footnotes

Build and push a multi-arch container

The following steps can be performed in parallel:

containmint build --push --tag quay.io/my_org/scratch_repo:my_tag-x86_64 --arch x86_64
containmint build --push --tag quay.io/my_org/scratch_repo:my_tag-aarch64 --arch aarch64

Once the steps above have been completed:

containmint merge --push \
  --tag quay.io/my_org/final_repo:my_tag \
        quay.io/my_org/scratch_repo:my_tag-x86_64 \
        quay.io/my_org/scratch_repo:my_tag-aarch64

This results in three tags:

  • quay.io/my_org/final_repo:my_tag – This manifest list contains x86_64 and aarch64 images.

  • quay.io/my_org/scratch_repo:my_tag-x86_64 – This image is x86_64 only.

  • quay.io/my_org/scratch_repo:my_tag-aarch64 – This image is aarch64 only.

Release files for containmint 0.6.0

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

Source distribution (sdist)

Source distribution for containmint 0.6.0
File Size Uploaded
containmint-0.6.0.tar.gz 32.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for containmint 0.6.0
File Interpreter ABI Platform
containmint-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.3 kB

Release files / containmint-0.6.0.tar.gz

Download URL containmint-0.6.0.tar.gz
Size 32.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cbeb758dc364d92f265a6c854c44c879ced7dc944c29acb6343fc0189aca8c41
BLAKE2b-256 checksum
How to use checksums
60b8f77291779049b2805b9b05264cbf6fafbc4809891d1b1cdef2752a3c779a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release files / containmint-0.6.0-py3-none-any.whl

Download URL containmint-0.6.0-py3-none-any.whl
Size 21.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9fe7d0d43fe17f418b0b284dcfd8840ab03ad23c834f780a641dbe18c6106b26
BLAKE2b-256 checksum
How to use checksums
7f1097c6bc0c7abde6745ccf6cecf09db92b206f2c2ffdd03922bc08930ae36e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.32.5

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

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