{ "info": { "author": "Morten Lied Johansen", "author_email": "mortenjo@ifi.uio.no", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development", "Topic :: Software Development :: Build Tools", "Topic :: System :: Software Distribution", "Topic :: Utilities" ], "description": "DockerMA - Docker Multi Architecture\n====================================\n\nDockerMA facilitates building multi-arch containers with minimal fuss.\n\nWhat does it do?\n----------------\n\n``dockerma`` aims to be a drop-in replacement for ``docker build`` and ``docker push`` to handle building what is often\nreferred to as \"multi-arch\" images. A \"multi-arch\" image is actually a manifest, listing which actual image to use for\na given architecture. The way to create these are still somewhat cumbersome, and considered experimental, especially if\nyou are using a base image that is already \"multi-arch\".\n\n``dockerma build`` works by reading your ``Dockerfile`` and looking for a specially formatted comment that selects which\narchitectures you want to build. It will then create a manipulated version of your ``Dockerfile``, to inject some tools\nfor cross-building, and then build architecture specific images. If you have selected ``amd64`` and ``arm``, and build\n``myapp:v1.0``, the build will produce ``myapp:v1.0-amd64`` and ``myapp:v1.0-arm``.\n\n``dockerma push`` will take the architecture specific images that was built previously, and push them to the remote\nregistry. It will then create a manifest, listing each of the images for the wanted architectures, and push the manifest\nunder the requested tag. This will create a \"multi-arch\" image.\n\nSupported architectures is based on what is available in the tooling used. The cross-building tools are from\nhttps://github.com/monsonnl/qemu-wrap-build-files, and at this writing only supports ``amd64``, ``arm`` and ``arm64``.\nIf you want ``dockerma`` to support other architectures, you need to persuade ``qemu-wrap-build-files`` to support it\nfirst.\n\nHow do I use it?\n----------------\n\nSince ``dockerma`` aims to be a drop-in replacement, using it should be fairly simple.\n\nThe first step is to add the ``dockerma`` comment to your ``Dockerfile``::\n\n # dockerma archs:arm,amd64,arm64:\n\n\nWhen you previously used ``docker build -t myapp:latest -t myapp:v1.0 .`` to build ``latest`` and ``v1.0`` tags for your\ncurrent architecture, you will now simply replace ``docker`` with ``dockerma``::\n\n dockerma build -t myapp:latest -t myapp:v1.0 .\n\n\nSimilary, where you used ``docker push -t myapp:latest``, you now use ``dockerma``::\n\n dockerma push myapp:latest\n\nWhat are the requirements?\n--------------------------\n\n* You need to enable experimental features in ``docker``. This can be done by setting ``DOCKER_CLI_EXPERIMENTAL`` to\n ``enabled``, or changing your docker configuration. Consult the docker documentation for details.\n* Your build host must support running ``qemu--static``.\n* Your base images needs to already support multi-arch (and in particular, the architectures you want to support).\n Many official images already do.\n\nAre there any downsides to this approach?\n-----------------------------------------\n\n* All images will have some additional files from the cross-build tooling, located in ``/cross-build``.\n\nReleasing a new version\n-----------------------\n\n1. Tag the new version: ``hg tag v1.2.3``\n2. Push the tag to Bitbucket\n3. Watch the pipeline publish the new version to PyPI\n\nNew changes in v0.5.2\n---------------------\n\n* `3ec7f836a1c1`_: Minor fixes\n* `ddf8faba9a65`_: Fix deployment step\n* `f2c2d66cb4e9`_: Configure pipeline to support push e2e test\n* `7b7c6d7b7c05`_: Add e2e test for push\n\n.. _f2c2d66cb4e9: https://bitbucket.org/mortenlj/dockerma/commits/f2c2d66cb4e9\n.. _3ec7f836a1c1: https://bitbucket.org/mortenlj/dockerma/commits/3ec7f836a1c1\n.. _7b7c6d7b7c05: https://bitbucket.org/mortenlj/dockerma/commits/7b7c6d7b7c05\n.. _ddf8faba9a65: https://bitbucket.org/mortenlj/dockerma/commits/ddf8faba9a65\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/mortenlj/dockerma", "keywords": "docker", "license": "The MIT License", "maintainer": "", "maintainer_email": "", "name": "dockerma", "package_url": "https://pypi.org/project/dockerma/", "platform": "", "project_url": "https://pypi.org/project/dockerma/", "project_urls": { "Homepage": "https://bitbucket.org/mortenlj/dockerma", "Source": "https://bitbucket.org/mortenlj/dockerma/src", "Tracker": "https://bitbucket.org/mortenlj/dockerma/issues" }, "release_url": "https://pypi.org/project/dockerma/0.5.2/", "requires_dist": [ "appdirs (==1.4.3)", "six", "tox ; extra == 'ci'", "twine ; extra == 'ci'", "pytest-html (==1.19.0) ; extra == 'dev'", "pytest-cov (==2.6.0) ; extra == 'dev'", "pytest (==3.8.2) ; extra == 'dev'", "mock (==3.0.5) ; extra == 'dev'", "tox ; extra == 'dev'", "twine ; extra == 'dev'" ], "requires_python": "", "summary": "DockerMA facilitates building multi-arch containers with minimal fuss", "version": "0.5.2" }, "last_serial": 5630272, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a1061d245a2dd07522f83b11fe19f19b", "sha256": "421e5e318a35db0715acbebe20a2fe263a916d7356ac06aeceaf35711a9c642f" }, "downloads": -1, "filename": "dockerma-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a1061d245a2dd07522f83b11fe19f19b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 1761, "upload_time": "2019-03-31T19:12:53", "url": "https://files.pythonhosted.org/packages/ca/8c/2571e68d04fde86692594d75d5893d71b25ee1ad315ba9b982126b8ff08a/dockerma-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f4c5ec74e1dde41ca3ee1428dd6c3a1", "sha256": "e5c5f5ef9e225b1e27f81909d9806ad48945486b7a8cdce5008e28c36ca7bdbf" }, "downloads": -1, "filename": "dockerma-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7f4c5ec74e1dde41ca3ee1428dd6c3a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3607, "upload_time": "2019-03-31T19:12:55", "url": "https://files.pythonhosted.org/packages/70/77/28da7a3b0e76ef8412ff2dfe34a29867b9f5f69301f6b474d5c5f2cc83e1/dockerma-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "badbaa2b16a0849a5de9df4b164e67ee", "sha256": "a818966006ef02ca49c40d6e47f882e0707ab98b5f1be1cbaff1602707043ca5" }, "downloads": -1, "filename": "dockerma-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "badbaa2b16a0849a5de9df4b164e67ee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3100, "upload_time": "2019-04-14T20:13:58", "url": "https://files.pythonhosted.org/packages/ea/5f/39ff51a7fcc7fcd918bca6819a6e98c17865c81a001890e6ed2c88efd7ec/dockerma-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6096197d50244a2983682248fdaa05f7", "sha256": "f44102a420ce5536651b92d33f6b83e6720abbc5c00d7d0e742e54c527d58b7b" }, "downloads": -1, "filename": "dockerma-0.0.2.tar.gz", "has_sig": false, "md5_digest": "6096197d50244a2983682248fdaa05f7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5329, "upload_time": "2019-04-14T20:13:59", "url": "https://files.pythonhosted.org/packages/97/16/6488cc1123a7381507993cc9396a405d82ca884bc5def937b1b731ecf65a/dockerma-0.0.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f6efc5e6072c8d3d6f25d97f59c21e7e", "sha256": "b9ea36ddd2841b09871d01811e1bdc97efe3e9ac06fd690d34244c3ffe9e9997" }, "downloads": -1, "filename": "dockerma-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f6efc5e6072c8d3d6f25d97f59c21e7e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9362, "upload_time": "2019-06-09T11:04:48", "url": "https://files.pythonhosted.org/packages/a5/6d/44b2996fca5c578130e7d7b7c9d4c2ad81a8301d1177e1e14600971d5698/dockerma-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f4dadf9db5b5c4f62623b4c16a48a871", "sha256": "361134c5a86e1f27baa42d95856327efca564283cb3722d0461cb4f2fe05a78e" }, "downloads": -1, "filename": "dockerma-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f4dadf9db5b5c4f62623b4c16a48a871", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9360, "upload_time": "2019-06-09T11:04:49", "url": "https://files.pythonhosted.org/packages/ed/7c/1b6c6d6318132e58e4c839cc5907b8c74ddcbb177e7387fe92f63a098bf9/dockerma-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb3072540beefd8363d936cd06319067", "sha256": "31fc538708c41af86b3ce9836cc539e9a17d717b73be7f167c30ed176596f31e" }, "downloads": -1, "filename": "dockerma-0.4.0.tar.gz", "has_sig": false, "md5_digest": "bb3072540beefd8363d936cd06319067", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12414, "upload_time": "2019-06-09T11:04:51", "url": "https://files.pythonhosted.org/packages/3d/f0/4c9acad6d6f72813d5b90d1e63199a33cbf93adcad4e1e5ad62e3c33bcd0/dockerma-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "e86fda1934c34df2a644206eb991210f", "sha256": "077ca67dea96ef9d215830068de6f69f27c75625e2ddf5efa19e42bb8ebc1928" }, "downloads": -1, "filename": "dockerma-0.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "e86fda1934c34df2a644206eb991210f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 9600, "upload_time": "2019-06-12T19:16:29", "url": "https://files.pythonhosted.org/packages/1d/1c/bfc5a3586352c6e55b659f73c392e4adb353c3324a4ae2ab288debaaeecf/dockerma-0.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f1090d513387112c995df4323c3345e7", "sha256": "b4712b2c2b3272d2f394bd9d16f4b482d37523b4f1744fba5f128d9e500477f5" }, "downloads": -1, "filename": "dockerma-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f1090d513387112c995df4323c3345e7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9598, "upload_time": "2019-06-12T19:16:30", "url": "https://files.pythonhosted.org/packages/52/dd/5b66451fcbd17bd0e0c3107aecb2f677d032ba91e6265861c766f4fe9a3c/dockerma-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fcf3ec732d2c1d1fe2ca6f915e55760", "sha256": "ebab6796849333074c29bac2a70591ea79a71569f7bd3cdd18d1d8b73578f6e4" }, "downloads": -1, "filename": "dockerma-0.4.1.tar.gz", "has_sig": false, "md5_digest": "8fcf3ec732d2c1d1fe2ca6f915e55760", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12793, "upload_time": "2019-06-12T19:16:32", "url": "https://files.pythonhosted.org/packages/be/a3/ff7bc067322c895227828540a2711aba49bdbca29d4fada59662140078c7/dockerma-0.4.1.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "ce56c53ef2be1ce6f66d77cec3c1f6c0", "sha256": "ecf72c1238e361afd65ed21ed515be602c1aa02d74c1da88352986b4bcaabed6" }, "downloads": -1, "filename": "dockerma-0.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "ce56c53ef2be1ce6f66d77cec3c1f6c0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10364, "upload_time": "2019-07-15T20:02:11", "url": "https://files.pythonhosted.org/packages/90/b6/635298e2ee76a5514c5eadd6d442ccffed2659c59b95c7b8e593c4cc8147/dockerma-0.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0b460fec6ea46922a0b1365b751f509", "sha256": "9e775e966ed46503999a5ac56eeff0b18d2078c8495b11831017ae10a8c41787" }, "downloads": -1, "filename": "dockerma-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a0b460fec6ea46922a0b1365b751f509", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10364, "upload_time": "2019-07-15T20:02:12", "url": "https://files.pythonhosted.org/packages/02/5e/09cd921e9ee6fbfa5502fd489583d2aad4db74bc0fe6487a8bc10b11f171/dockerma-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e78de4a0ad17bac471dc6b1adbe8123", "sha256": "b8186c7652d1e457c55f8017a0213a0e287142b73eb741a97a3683b8433d76b7" }, "downloads": -1, "filename": "dockerma-0.5.1.tar.gz", "has_sig": false, "md5_digest": "3e78de4a0ad17bac471dc6b1adbe8123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13923, "upload_time": "2019-07-15T20:02:13", "url": "https://files.pythonhosted.org/packages/c2/1b/8b1daeabab34eb55482527ec98390aeb2c70fa1984dd8ca77565a008c875/dockerma-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "12f5cad59ea0191a889a2134e9caa9a7", "sha256": "eb95ae9d84097b26783782cb411b907495619701bc596a184f885e7e755549db" }, "downloads": -1, "filename": "dockerma-0.5.2-py2-none-any.whl", "has_sig": false, "md5_digest": "12f5cad59ea0191a889a2134e9caa9a7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10503, "upload_time": "2019-08-04T10:12:55", "url": "https://files.pythonhosted.org/packages/23/4c/8410d456706a67fa78897a58ab5fb71b06f970f538c7ba2cd499c6357b82/dockerma-0.5.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1864cf745951d4172e9bda0bd9d75809", "sha256": "b65cf729731e0290c1072a1a97e3d33772e395f947357205a725d1de42f21d0e" }, "downloads": -1, "filename": "dockerma-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1864cf745951d4172e9bda0bd9d75809", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10505, "upload_time": "2019-08-04T10:12:56", "url": "https://files.pythonhosted.org/packages/ab/bf/e09a906d44af492615a6527bf9d65ae2dad059c8d5ac646a53db464a741a/dockerma-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdc27d4537707791b6f6d0c2667e85b7", "sha256": "117d9612c109b443244946b5e275d44ba3622567e3695947caa8e787e6d9fa0e" }, "downloads": -1, "filename": "dockerma-0.5.2.tar.gz", "has_sig": false, "md5_digest": "fdc27d4537707791b6f6d0c2667e85b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15281, "upload_time": "2019-08-04T10:12:58", "url": "https://files.pythonhosted.org/packages/67/0f/789290b66bb7b3f067ddc6e3f3020604c75801542872f34c53f16af196a7/dockerma-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "12f5cad59ea0191a889a2134e9caa9a7", "sha256": "eb95ae9d84097b26783782cb411b907495619701bc596a184f885e7e755549db" }, "downloads": -1, "filename": "dockerma-0.5.2-py2-none-any.whl", "has_sig": false, "md5_digest": "12f5cad59ea0191a889a2134e9caa9a7", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10503, "upload_time": "2019-08-04T10:12:55", "url": "https://files.pythonhosted.org/packages/23/4c/8410d456706a67fa78897a58ab5fb71b06f970f538c7ba2cd499c6357b82/dockerma-0.5.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1864cf745951d4172e9bda0bd9d75809", "sha256": "b65cf729731e0290c1072a1a97e3d33772e395f947357205a725d1de42f21d0e" }, "downloads": -1, "filename": "dockerma-0.5.2-py3-none-any.whl", "has_sig": false, "md5_digest": "1864cf745951d4172e9bda0bd9d75809", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10505, "upload_time": "2019-08-04T10:12:56", "url": "https://files.pythonhosted.org/packages/ab/bf/e09a906d44af492615a6527bf9d65ae2dad059c8d5ac646a53db464a741a/dockerma-0.5.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdc27d4537707791b6f6d0c2667e85b7", "sha256": "117d9612c109b443244946b5e275d44ba3622567e3695947caa8e787e6d9fa0e" }, "downloads": -1, "filename": "dockerma-0.5.2.tar.gz", "has_sig": false, "md5_digest": "fdc27d4537707791b6f6d0c2667e85b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15281, "upload_time": "2019-08-04T10:12:58", "url": "https://files.pythonhosted.org/packages/67/0f/789290b66bb7b3f067ddc6e3f3020604c75801542872f34c53f16af196a7/dockerma-0.5.2.tar.gz" } ] }