A wrapper for multiplatform Docker image builds.
Project description
mdocker
An easy-to-use wrapper for multiplatform Docker image builds.
Contents
Description
mdocker is a simple wrapper over Docker Buildx, which can be used for easy image building targeted for various platforms.
This tool was originally designed as a workaround to a limitation that Buildx has with the --load
parameter.
So, the amount of target platforms specified for this wrapper will be equal to the amount of tags generated in local cache.
E.g., if linux/arm64
and linux/amd64
were specified as target platforms for a demo
image, you will get demo:arm64
and demo:amd64
built and stored within your local Docker cache.
Usage
mdocker requires an installation of Python 3.10+.
Below is a help message with the description of arguments.
$ python3 -m mdocker --help
usage: [-h] [--context CONTEXT] [--file FILE] [--platform PLATFORM] [--push]
name
positional arguments:
name specify a name for the image
options:
-h, --help show this help message and exit
--context CONTEXT specify a path to build context
--file FILE specify a path to Dockerfile
--platform PLATFORM specify target platforms (e.g., --platform linux/amd64,linux/arm64)
--push push image to remote registry
Installation
From PyPI (recommended)
To install latest mdocker package from PyPI, use:
python3 -m pip install mdocker
Local from source
To install and debug mdocker locally, in the root of repository use:
python3 -m pip install -e .
No installation, direct run from source
To run mdocker without any installation into local cache, in the root of repository use:
export PYTHONPATH=$(pwd)
python3 -m poetry install --no-root
python3 mdocker <arguments>
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.