{ "info": { "author": "Kilian Volb, Mikhail Erofeev", "author_email": "kilian@nexus-stats.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development", "Topic :: System :: Monitoring" ], "description": "Docker Bash Volume Watcher\n==============================\nThis fork takes merofeev's `docker-windows-volume-watcher `_ and makes it work with Bash for Windows (aka Ubuntu on Windows)\n\nThe script monitors directory bindings of Docker containers on Windows hosts and notifies containers about file changes.\n\nThe script aims to be workaround for the problem of file change events propagation on Windows hosts. Due to limitations of CIFS implementation in Linux kernel, file change events in mounted folders of host are not propagated to container by Docker for Windows. This problem renders watch mode of modern frameworks (e.g. Jekyll, ng-cli, etc.) development servers useless, since containers are not notified about file changes. This problem is described on `Docker Community Forums `_.\n\nInstallation\n------------\nThis script can be installed with pip (both Python 2 & 3 are supported).\n\n.. code:: bat\n\n pip install docker-bash-volume-watcher\n\n\nUsage\n-----\nMonitor all directory bindings of all containers. The script will listen for container start/stop events and notify all running containers about file changes.\n\n.. code:: bat\n\n docker-volume-watcher\n\n\nMonitor only bindings of container ``container_name``.\n\n.. code:: bat\n\n docker-volume-watcher container_name\n\n\nMonitor only binding of ``container_name`` in sub directory ``/not_node_modules``.\n\n\n.. code:: bat\n\n docker-volume-watcher container_name /not_node_modules\n\n\nYou can also specify wildcards with ``*`` and ``?`` characters. For example: monitor only bindings of containers with names containing `myproject`.\n\n.. code:: bat\n\n docker-volume-watcher *myproject*\n\n\nUse flag ``-v`` to enable verbose output: the script will report start/stop events of eligible containers and print all detected file changes.\n\nLimitations\n------------\n* The script doesn't propagate to container file deletion events.\n* The script requires ``stat`` and ``chmod`` utils to be installed in container (this should be true by default for the most of containers).\n\nImplementation details\n-----------------------\nThe script uses ``watchdog`` package to observe file change events of the host directory. Once file change event is fired the script reads file permissions of changed file (using `stat` util) and rewrites file permissions with the same value (using ``chmod`` util) thus triggering inotify event inside container.\n\n\"Rewrite file permissions approach\" was used instead of updating file last modified time with ``touch`` util. Since touching will cause event loop: touch will trigger file change event in Windows, script will handle this event and touch file again, etc.\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Kaptard/docker-bash-volume-watcher", "keywords": "Docker volume Windows watch inotify", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "docker-bash-volume-watcher", "package_url": "https://pypi.org/project/docker-bash-volume-watcher/", "platform": "", "project_url": "https://pypi.org/project/docker-bash-volume-watcher/", "project_urls": { "Homepage": "https://github.com/Kaptard/docker-bash-volume-watcher" }, "release_url": "https://pypi.org/project/docker-bash-volume-watcher/1.0.8/", "requires_dist": [ "docker (==2.7.0)", "watchdog (>=0.8.3)" ], "requires_python": "", "summary": "A tool to notify Docker contianers about changes in mounts on Bash for Windows.", "version": "1.0.8" }, "last_serial": 3560430, "releases": { "1.0.7": [ { "comment_text": "", "digests": { "md5": "5d8bc33bab130e9d07b6ebdedf7b0962", "sha256": "aa1580bd394a504784f223251082638ee16852cfed996c1568f2c62bfb4f5c8d" }, "downloads": -1, "filename": "docker_bash_volume_watcher-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5d8bc33bab130e9d07b6ebdedf7b0962", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8552, "upload_time": "2018-02-07T03:21:12", "url": "https://files.pythonhosted.org/packages/b5/b5/7f29a8aec5f08a4ded251b8ea24871c66e4c1bb713346f8dc9790a11a214/docker_bash_volume_watcher-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26e0050e04cb030b78c9e56e7dba83a6", "sha256": "aa53697aee66479abd663c50cc6a3c48f4242c99f912371ed09d0980209219ca" }, "downloads": -1, "filename": "docker-bash-volume-watcher-1.0.7.tar.gz", "has_sig": false, "md5_digest": "26e0050e04cb030b78c9e56e7dba83a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4996, "upload_time": "2018-02-07T03:21:14", "url": "https://files.pythonhosted.org/packages/3c/fc/3a56983f1606e7bc58bbb04e6920d3c5412b2b585807a1e6162796a41eb4/docker-bash-volume-watcher-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "0f11dc9592250374eda2bf94f500da3c", "sha256": "522eea45d03b4b1e62209e3d10834c725bd23cb4fa0a687b961d9bfe5a6c7d0d" }, "downloads": -1, "filename": "docker_bash_volume_watcher-1.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f11dc9592250374eda2bf94f500da3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8545, "upload_time": "2018-02-07T14:20:58", "url": "https://files.pythonhosted.org/packages/1d/0d/2206541cdef430795976891ea04628bb3ba4d308d9120cc660cf935b1285/docker_bash_volume_watcher-1.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75510ea1fba0a99b68a6d82509159e8b", "sha256": "38300a5e52af606031af33e5914618167971df0ed922c6afdd1ae7c1d7652e55" }, "downloads": -1, "filename": "docker-bash-volume-watcher-1.0.8.tar.gz", "has_sig": false, "md5_digest": "75510ea1fba0a99b68a6d82509159e8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4978, "upload_time": "2018-02-07T14:20:59", "url": "https://files.pythonhosted.org/packages/a9/da/ef438b10f4dab80474ed7faeffbbcbb51c335cf56bbef90c8ca2cdd95063/docker-bash-volume-watcher-1.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0f11dc9592250374eda2bf94f500da3c", "sha256": "522eea45d03b4b1e62209e3d10834c725bd23cb4fa0a687b961d9bfe5a6c7d0d" }, "downloads": -1, "filename": "docker_bash_volume_watcher-1.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f11dc9592250374eda2bf94f500da3c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8545, "upload_time": "2018-02-07T14:20:58", "url": "https://files.pythonhosted.org/packages/1d/0d/2206541cdef430795976891ea04628bb3ba4d308d9120cc660cf935b1285/docker_bash_volume_watcher-1.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "75510ea1fba0a99b68a6d82509159e8b", "sha256": "38300a5e52af606031af33e5914618167971df0ed922c6afdd1ae7c1d7652e55" }, "downloads": -1, "filename": "docker-bash-volume-watcher-1.0.8.tar.gz", "has_sig": false, "md5_digest": "75510ea1fba0a99b68a6d82509159e8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4978, "upload_time": "2018-02-07T14:20:59", "url": "https://files.pythonhosted.org/packages/a9/da/ef438b10f4dab80474ed7faeffbbcbb51c335cf56bbef90c8ca2cdd95063/docker-bash-volume-watcher-1.0.8.tar.gz" } ] }