{ "info": { "author": "Michael Peick", "author_email": "python-cleanenv@n-pq.de", "bugtrack_url": null, "classifiers": [], "description": "Clean environment is the logical successor of python's virtualenv.\n\nIt's using docker to create a full encapsulated working environment.\n\nThe usage is really simple and fully transparent to the user. You will not\neven notice that you are working in the environment. All programs can be started\nfrom the _outsite_ as if they were usual programs. They are automatically\nwrapped and started in a docker container.\n\n\nWhy not using docker or virtualenv directly\n===========================================\n\nVirtualenv not only lacks of full isolation from the host system. You are also\nbound the that specific operating system. In some cases you are not allowed to\ninstall and run your own privileged services like a database or use another\nversion of a software.\n\nDocker - although some people call it the virtualenv killer - lacks of\nusability to be a virtualenv replacement. You will always need some handcrafted\nscripts to make it handsome.\n\nCleanenv wraps programs running in docker containers as if they were part of your\nhost machine. Programs, users and pathes are mapped transparently. You can use\nit as a drop-in-replacement to virtualenv.\n\nAnd it's not strictly bound to python. Everything that you want to transparently\nexecute isolated can be used with cleanenv. Suppose you need to run a newer or\nolder version of ruby but cannot upgrade/downgrade your host system version.\nCleanenv creates a shortcut binary for you to let you run it isolated with\nyour user and pathes mapped.\n\n\nCreate an environment\n=====================\n\n $ cleanenv create \n\nThe simple `create` command creates an environment in the path specified.\nTo enter the environment type:\n\n $ source /bin/activate\n\nTo deactivate, but not destroy, the environment type:\n\n $ deactivate\n\nOn deactivation, all running processes are stopped. If you want to keep them\nrunning, use the --persistent directive on creation.\n\nTo start a program, e.g. a mysql server, whenever the environment is activated\nuse the --on-activate directive. The argument will be executed inside\nthe container after start up.\n\n $ cleanenv create --on-activate --on-deactivate \n\n (not implemented yet, sorry)\n\nIf you plan to use programs inside the environment without entering it, you\nshould use the --persistent directive. This keeps your container running even\nwhen your programs exits.\n\nBecause docker containers are completely isolated to the host system, all\nexisting users of your host system does not exist in the container. Cleanenv\nautomatically creates a user inside the docker container that matches the user\nwho called cleanenv. You can override this settings with the --user directive:\n\n $ cleanenv create --user [:] \n\n $ cleanenv create --user system:[:] \n\nMapping of programs to easily call them from your host machine can be achieved\nwith the --program directive:\n\n $ cleanenv create --link \n\nBy default, only the root directory of you host system is mounted read-only into\nthe container under the path `/r`. To override these settings you can provide\na mapping like:\n\n $ cleanenv create --directory :[:rw]\n\nIf `:rw` is not present, the host-path is mounted read-only. Be careful when\nusing :rw (full access read and write) mounts. You may alter/delete files in\nyour host system, because of missing security features in docker.\n\n\nConfiguration file\n==================\n\nIf you have a complex configuration or you need a reproducable configuration\nyou can put all above mentioned settings into a .cleanenv.conf file.\nWhen executing `cleanenv create ` it searches this file in the current\nworking directory. Alternatively you can provide a configuration file with\n`--config`\n\n\nReset the state of an environment\n=================================\n\nTo cleanup the environment and reuse it without fully destroying the environment\nyou can use the `cleanenv reset` command.\n\nInternally it stops and removes the docker container.\n\n\nProper destroying of an environment\n===================================\n\nCleanenv manages a set of docker images (snapshots), which needs to be removed\nwhen you don't need the environment anymore. To remove them just type:\n\n $ cleanenv destroy\n\ninside the activated environment or directly:\n\n $ /bin/destroy\n\n\nUsing snapshots (not implemented yet, sorry)\n===============\n\nSnapshots are used to store the current state of the docker container for\nrollback and roll-forward of changes.\n\nSet a program to automatically create a snapshot when executed.\n\n $ cleanenv snapshot configure pip --pattern 'install' --name 'pip-{id}'\n\nList available snapshots:\n\n $ cleanenv snapshot list\n\nCreate a snapshot:\n\n $ cleanenv snapshot create []\n\nRestore a snapshot:\n\n $ cleanenv snapshot \n\nTo restore the initial start - after creating the cleanenv - use:\n\n $ cleanenv reset\n\nBe careful when doing this, because all snapshots may get lost on the next\nsnapshot creation.\n\nTo freeze the state of your cleanenv, type:\n\n $ cleanenv freeze\n\nIt creates a docker image with a snapshot history and prevents all upcoming\nchanges.\n\n $ cleanenv unfreeze\n\nreverts the freeze state, which means you are free to do any changes.\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "cleanenv", "package_url": "https://pypi.org/project/cleanenv/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cleanenv/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/cleanenv/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Clean environment using docker", "version": "0.1.3" }, "last_serial": 1782052, "releases": { "0.1.3": [ { "comment_text": "", "digests": { "md5": "d8c5b2c78d6de8b58e4382e183a918eb", "sha256": "e9cb2433c59ba78f88a92d353c66166b2def174d3619c0e5fb7eb4d2c87e114b" }, "downloads": -1, "filename": "cleanenv-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d8c5b2c78d6de8b58e4382e183a918eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 908901, "upload_time": "2015-10-22T21:45:15", "url": "https://files.pythonhosted.org/packages/ce/5e/f75d43558b25fe99b7ff8c4fc5c8681b4229609e8c00446d0dd4cf8e7e2d/cleanenv-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d8c5b2c78d6de8b58e4382e183a918eb", "sha256": "e9cb2433c59ba78f88a92d353c66166b2def174d3619c0e5fb7eb4d2c87e114b" }, "downloads": -1, "filename": "cleanenv-0.1.3.tar.gz", "has_sig": false, "md5_digest": "d8c5b2c78d6de8b58e4382e183a918eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 908901, "upload_time": "2015-10-22T21:45:15", "url": "https://files.pythonhosted.org/packages/ce/5e/f75d43558b25fe99b7ff8c4fc5c8681b4229609e8c00446d0dd4cf8e7e2d/cleanenv-0.1.3.tar.gz" } ] }