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 multiple platforms.
This tool was originally designed as a workaround to a limitation that Buildx has with the --load parameter.
Note: There are, however, some workarounds and progress towards this issue.
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>