An easy-to-use wrapper for multiplatform Docker image builds.
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.
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 registryTo install latest mdocker package from PyPI, use:
python3 -m pip install mdockerTo install and debug mdocker locally, in the root of repository use:
python3 -m pip install -e .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>