{ "info": { "author": "Scott Robertson", "author_email": "scott@6sense.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "FORK\n====\nWhile https://github.com/6si/shipwright will be kept up-to-date.\nI only have access to the dockhand name on PyPI.\n\nShipwright builds shared Docker images within a git repository in **the\nright order** and publishes them tagged with git's revision/branch\ninformation so you'll never loose track of an image's origin.\n\nIt's the perfect tool for building and publishing your images to places\nlike Docker Hub or your own private registry. Have a look at `our\nmotivation `__ to see why we built it and the pain\npoints it solves for you.\n\nInstallation\n============\n\nShipwright is a simple python script you can install with pip\n\n::\n\n $ pip install shipwright\n\nQuickstart\n==========\n\nOnce installed, simply change to a project of yours that contains\nmultiple Dockerfiles and is in git.\n\nAdd a json formatted file named ``.shipwright.json`` to the root\ndirectory of your project. At minimum it should contain the version\nnumber of your Shipwright config and a ``namespace`` which is either\nyour docker hub user name or the URL to your private repository.\n\n1.0 is the current version for the config.\n\n.. code:: json\n\n {\n \"version\": 1.0,\n \"namespace\": \"[your docker hub name or private repository]\"\n }\n\nAdditionally your config file can map directory names to alternative\ndocker repositories. For example here is a ``.shipwright.json`` for the\ndocker hub user ``shipwright`` that also maps the root of the git\nrepository to the docker image ``shipwright/shared`` and the ``/foo``\ndirectory to ``shipwright/awesome_sauce``.\n\n.. code:: json\n\n {\n \"version\": 1.0,\n\n \"namespace\": \"shipwright\",\n \"names\": {\n \"/\": \"shipwright/shared\",\n \"/foo\": \"shipwright/awesome_sauce\"\n }\n\nNow you can build all the docker images in the git repo by simply\nchanging to any directory under your git repo and running:\n\n::\n\n $ shipwright\n\nThis will recurse through all the directories, looking for ones that\ncontain a Dockerfile. Shipwright will build these Dockerfiles in order\nand by default tag them with ``/:``\nalong with ``/:`` and\n``/:latest``\n\nWorking example\n---------------\n\nWe have `a sample shipwright\nproject `__ you can use if you\nwant to try this out right away.\n\n.. code:: bash\n\n $ git clone https://github.com/6si/shipwright-sample.git\n $ cd shipwright-sample\n $ shipwright \n\n**NOTE: you can use any username you'd like while building locally. In\nthe above example we use ``shipwright``. Nothing is published unless you\nuse the ``push`` command. For your own projects, substitute\n``shipwright`` in the above example with your (or your organizations)\nofficial docker hub username or private repository.**\n\nNotice that if you run the ``shipwright`` a second time it will return\nimmediately without doing anything. Shipwright is smart enough to know\nnothing has changed.\n\nShipwright really shines when you switch git branches.\n\n.. code:: bash\n\n $ git checkout new_feature\n $ shipwright\n\nNotice that shipwright only rebuilt the shared library and service1,\nignoring the other projects because they have a common git ancestry.\nRunning ``docker images`` however shows that all the images in the git\nrepository have been tagged with the latest git revision, branch and\n``latest``.\n\nIn fact, as Shipwright builds containers it rewrites the Dockerfiles so\nthat they require the base images with tags from the current git\nrevision. This ensures that the entire build is deterministic and\nreproducible.\n\nBuilding\n========\n\nBy default, if you run shipwright with no arguments, it will build all\nDockerfiles in your git repo. You can specify one or more ``specifiers``\nto select fewer images to build. For example you can build a single\nimages and its dependencies by simply specifying its name on the command\nline.\n\n::\n\n $ shipwright /some_image\n\nRun \\`shipwright --help' for more examples of specifiers and their uses.\n\nPublishing\n==========\n\nWith one command Shipwright can build your images and push them to a\nremote repository.\n\n::\n\n $ shipwright push\n\nIf you like you can just push your latest images without building.\n\n::\n\n $ shipwright push --no-build \n\nThe same specifiers for building also work with ``push``. You might use\nthis to build an entire tree in one step then push a specific image like\nso.\n\n::\n\n $ shipwright build\n $ shipwright push -e /public_image\n\n\n0.4.0 (2016-06-13)\n------------------\n\n- Isolate all git functionality, so as to create pluggable Source Control wrappers.\n- More efficient required build detection. (`Issue #63 `_)\n- Isolate all zipper usage, vendor zipper library.\n\n0.2.2 (2015-01-07)\n------------------\n\n- Fix bug missing ``tls`` when communicating with docker over a unix\n socket.\n\n0.2.1 (2015-01-01)\n------------------\n\n- Force tag to support docker 1.4.1\n- Requries docker-py >= 0.6\n- Added ``assert_hostname`` as an option to ``.shipwright.json``\n- Added command line option ``--x-assert-hostname`` to disable hostname\n checking when TLS is used. Useful for boot2docker\n\n0.2.0 (2014-12-31)\n------------------\n\n- Added ``shipwright push`` and ``shipwright purge``\n- Added support for specifiers ``-u``, ``-d``, ``-e`` and ``-x``\n\n0.1.0 (2014-09-10)\n------------------\n\n- Build and tag containers\n- Moved config to ``.shipwright.json``", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/6si/shipwright/", "keywords": null, "license": "Apache Software License", "maintainer": null, "maintainer_email": null, "name": "dockhand", "package_url": "https://pypi.org/project/dockhand/", "platform": "any", "project_url": "https://pypi.org/project/dockhand/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/6si/shipwright/" }, "release_url": "https://pypi.org/project/dockhand/0.4.0/", "requires_dist": null, "requires_python": null, "summary": "The right way to build, tag and ship shared Docker containers.", "version": "0.4.0" }, "last_serial": 2164662, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "010437ea898f9005bb7a1ac1eeb6b9f8", "sha256": "7f39e70283a0a9935cf52d2124e67444a9e34c54cd472e4b9d420a0d1cf980ab" }, "downloads": -1, "filename": "dockhand-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "010437ea898f9005bb7a1ac1eeb6b9f8", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 26373, "upload_time": "2016-05-13T14:03:54", "url": "https://files.pythonhosted.org/packages/88/ee/8b477776b35d56fbbcf0bed621d59f382abc045f311cd8bd1d0d85ce42c5/dockhand-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d6c9d223823fc132e2ea48b11f60e07", "sha256": "7fad16b00c56bbc9dee837d9aadb4e62ef3cb4dbb197fbfc138d07a2b36c88a5" }, "downloads": -1, "filename": "dockhand-0.1.0.tar.gz", "has_sig": false, "md5_digest": "2d6c9d223823fc132e2ea48b11f60e07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25677, "upload_time": "2016-05-13T14:03:47", "url": "https://files.pythonhosted.org/packages/57/10/018016a06576387587d9d29e5240c17a6739904a6750cf1fad024137965a/dockhand-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "fa885d63e0ed2831f120be81cbca51eb", "sha256": "8e64e2904c67a534be14a7b981768e73cd0bc92c22f52071264f62fb7e5bca8d" }, "downloads": -1, "filename": "dockhand-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "fa885d63e0ed2831f120be81cbca51eb", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 22161, "upload_time": "2016-05-19T15:22:36", "url": "https://files.pythonhosted.org/packages/68/63/e8c239d6cc314186f656eeae0b9ad5137235db0e577e79070cdf32bd8948/dockhand-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61dbc82699cf9f89af1d481031d225b7", "sha256": "96cec9fb9357d987561bd74cdfeeb89ca324a3ae53fafe42e48a20a62e68a519" }, "downloads": -1, "filename": "dockhand-0.2.0.tar.gz", "has_sig": false, "md5_digest": "61dbc82699cf9f89af1d481031d225b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18243, "upload_time": "2016-05-19T15:21:19", "url": "https://files.pythonhosted.org/packages/0d/a9/a1eec2e0460862b5741de25b15408eeb16adf0ba70799e13d66529f3b91b/dockhand-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "eaece1d3025776f71d62da9326b44c95", "sha256": "a9d6a71b9bdb1bb735eba3fdbe8798add3b1c2f5036e4a0a338c9468633258ce" }, "downloads": -1, "filename": "dockhand-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eaece1d3025776f71d62da9326b44c95", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 21618, "upload_time": "2016-06-06T08:25:12", "url": "https://files.pythonhosted.org/packages/ef/cd/ac7dca18082aa8924977ac0b4aa520663cd29f73c990e2e5bbdfc5fbf7de/dockhand-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9383343bbc22717b30c39ad4b9d45ca", "sha256": "eee120efbf7f74d60a5ea917a3dc842380a2f67194625aab9cf78082395436d8" }, "downloads": -1, "filename": "dockhand-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d9383343bbc22717b30c39ad4b9d45ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17942, "upload_time": "2016-06-06T08:25:08", "url": "https://files.pythonhosted.org/packages/bd/ba/e0d529cb8a18bce0c24d4338896d90ca15ec1407c17adf0639bb432240c8/dockhand-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "19f42bc8566501a9c60cb14805f1c315", "sha256": "ebfbc6aa26b814acff8b810d7734e27e22e3813821b8c4c2ade863cbcfcc2a9b" }, "downloads": -1, "filename": "dockhand-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19f42bc8566501a9c60cb14805f1c315", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 21677, "upload_time": "2016-06-06T09:29:56", "url": "https://files.pythonhosted.org/packages/f4/29/a9532665bfcd923e0912e426236b5bbae746d7aafdf45bf413f2cf9560d7/dockhand-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d630664459912ca6d65821c5cde37531", "sha256": "4fa45c93a21c612d482b6ed4a3cb945675dda64a839c81e4bbdf954a26f70208" }, "downloads": -1, "filename": "dockhand-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d630664459912ca6d65821c5cde37531", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18021, "upload_time": "2016-06-06T09:29:51", "url": "https://files.pythonhosted.org/packages/0e/59/0e8495e0b5639ea9afc5d330d6b055e99335caeae616c57a9c6a4b72a40f/dockhand-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "23d65cd3d2bfd639c29b82d74a0460ee", "sha256": "f2ebe7a8fe81d3240289b85a4e9bbc62a82d3e91d74f34f80c6b9e87744340a2" }, "downloads": -1, "filename": "dockhand-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "23d65cd3d2bfd639c29b82d74a0460ee", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 21692, "upload_time": "2016-06-06T09:38:07", "url": "https://files.pythonhosted.org/packages/ab/1c/787a919b3610502139faf6129cdd7bcbe67128c12389816b61a0a8f8a70b/dockhand-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6a5a68f77bebd305e88b64b3ef0c96dd", "sha256": "74e99b1b26d102e68bdcff6e67f762c2760049154e69cf2fe8598b0bf239b28b" }, "downloads": -1, "filename": "dockhand-0.3.2.tar.gz", "has_sig": false, "md5_digest": "6a5a68f77bebd305e88b64b3ef0c96dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18024, "upload_time": "2016-06-06T09:38:01", "url": "https://files.pythonhosted.org/packages/c0/f1/7a9ab1899b91c03357e981f6ead2f34c6a5d52ff9f68534b37f99cd74c86/dockhand-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d01f76dfb5337f6063b824a66ba8e649", "sha256": "2b394084d1820fb811132ef5c37c87f343886e53884b846bb112f1e8a4b518c5" }, "downloads": -1, "filename": "dockhand-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d01f76dfb5337f6063b824a66ba8e649", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 21479, "upload_time": "2016-06-13T14:17:57", "url": "https://files.pythonhosted.org/packages/eb/a7/da1b81c7dba0222c60fa0747ca4ebc773285636337aea70644d00a2c180b/dockhand-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec97d2139ac5f7dc37b719d0a09b19ea", "sha256": "76bbd67ad2e6efd53c5c84cc37962d9b51ff1b96e0f490058605c417ec40cd08" }, "downloads": -1, "filename": "dockhand-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ec97d2139ac5f7dc37b719d0a09b19ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17898, "upload_time": "2016-06-13T14:15:02", "url": "https://files.pythonhosted.org/packages/61/88/d5e4bbb102540b119f4fd0f72cfb6d2238cba268d0453557864d0b187909/dockhand-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d01f76dfb5337f6063b824a66ba8e649", "sha256": "2b394084d1820fb811132ef5c37c87f343886e53884b846bb112f1e8a4b518c5" }, "downloads": -1, "filename": "dockhand-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d01f76dfb5337f6063b824a66ba8e649", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 21479, "upload_time": "2016-06-13T14:17:57", "url": "https://files.pythonhosted.org/packages/eb/a7/da1b81c7dba0222c60fa0747ca4ebc773285636337aea70644d00a2c180b/dockhand-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec97d2139ac5f7dc37b719d0a09b19ea", "sha256": "76bbd67ad2e6efd53c5c84cc37962d9b51ff1b96e0f490058605c417ec40cd08" }, "downloads": -1, "filename": "dockhand-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ec97d2139ac5f7dc37b719d0a09b19ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17898, "upload_time": "2016-06-13T14:15:02", "url": "https://files.pythonhosted.org/packages/61/88/d5e4bbb102540b119f4fd0f72cfb6d2238cba268d0453557864d0b187909/dockhand-0.4.0.tar.gz" } ] }