{ "info": { "author": "Django Stars", "author_email": "alexander.ryabtsev@djangostars.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT 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", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "telega-compose\n--------------\n\n.. image:: https://travis-ci.org/django-stars/telega-compose.svg?branch=master\n :target: https://travis-ci.org/django-stars/telega-compose\n\n.. image:: https://codecov.io/gh/django-stars/telega-compose/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/django-stars/telega-compose\n\n.. image:: https://badge.fury.io/py/telega-compose.svg\n :target: https://badge.fury.io/py/telega-compose\n\nThis is a wrapper on `docker-compose`_, which extends `compose file`_ syntax to keep several configurations (states) of your services in one file, with similar to docker-compose file syntax using native YAML `anchors and aliases`_.\n\nHow it works:\n=============\n\n- Render in-memory docker-compose file for required state from states file.\n- Call docker-compose app with rendered file (state) and apply required docker-compose command on it.\n\nStates file reference:\n======================\n\nIt's a YAML file with two required sections: **compose** and **states**.\n\nSection **compose** is regular docker-compose config excluding `services`_ section:\n\n.. code-block:: yaml\n\n compose:\n version: '3.4'\n configs:\n my_config:\n file: ./my_config.txt\n my_other_config:\n external: true\n secrets:\n my_secret:\n file: ./my_secret.txt\n my_other_secret:\n external: true\n volumes:\n data:\n media:\n\n\nSection **states** is a list of states with description of `services`_ section for each state:\n\n.. code-block:: yaml\n\n states:\n live:\n services:\n backend: *backend_service\n database: *database_service\n webserver: *webserver_service\n\nYou can describe service in separate section or inside **states** section. Also, you can inherit early described service and override some parameters in place:\n\n.. code-block:: yaml\n\n states:\n local:\n services:\n database: &database_local_service\n <<: *database_service\n ports:\n - \"127.0.0.1:5432:5432\"\n\n\nThe rest of the sections you can use for you own purposes. For example to configure logging for all services:\n\n.. code-block:: yaml\n\n ---\n compose:\n ...\n\n config:\n logging: &logging_config\n driver: \"json-file\"\n options:\n max-size: 50m\n\n components:\n\n backend: &backend_service\n ...\n logging: *logging_config\n\n database: &database_service\n ...\n logging: *logging_config\n\n webserver: &webserver_service\n ...\n logging: *logging_config\n\n states:\n\n live:\n services:\n backend: *backend_service\n database: *database_service\n webserver: *webserver_service\n\nCLI usage:\n==========\n\n.. code-block:: bash\n\n tcompose [-h] [-f FILE] state [docker-compose parameters]\n\nPositional arguments:\n\n- *state* - state to render docker-compose file\n- *docker-compose parameters* - any `command and its parameters accepted by docker-compose`_ except parameter for docker-compose file (*-f*, *--file*)\n\nOptional arguments:\n\n- *-h*, *--help* - to show help message\n- *-f FILE*, *--file FILE* - path to states file, by default: *states.yml*\n\nExamples:\n\n.. code-block:: bash\n\n tcompose local_dev config\n tcompose live -f /path/to/my-custom-states.yml up -d\n tcompose qa -f /path/to/states.yml --project-name acme up\n\n.. _docker-compose: https://docs.docker.com/compose/\n.. _compose file: https://docs.docker.com/compose/compose-file/\n.. _command and its parameters accepted by docker-compose: https://docs.docker.com/compose/reference/\n.. _anchors and aliases: http://www.yaml.org/spec/1.2/spec.html#id2760395\n.. _services: https://docs.docker.com/compose/compose-file/#service-configuration-reference\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/django-stars/telega-compose", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "telega-compose", "package_url": "https://pypi.org/project/telega-compose/", "platform": "", "project_url": "https://pypi.org/project/telega-compose/", "project_urls": { "Homepage": "https://github.com/django-stars/telega-compose" }, "release_url": "https://pypi.org/project/telega-compose/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "Utility to render docker-compose files with different states", "version": "0.0.2" }, "last_serial": 3909391, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "6e78e9c73597796b3507c47a60c67381", "sha256": "04be537129a0c400b6bed8c8dc1176c00aeefea98d3cad469a06ffbb13ced249" }, "downloads": -1, "filename": "telega-compose-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6e78e9c73597796b3507c47a60c67381", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4752, "upload_time": "2018-05-29T07:43:05", "url": "https://files.pythonhosted.org/packages/5f/f8/acc00e18e1b17ea75a207f17cbbdb10b3539d26a65f9a6372742aa4b0f08/telega-compose-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "0e0dfcfe2538da6bb723eea42f0e9ece", "sha256": "cb28884cf89a6f119df88a39bd9cfb93d970dc6849019b5d8df1f5d0b46c263a" }, "downloads": -1, "filename": "telega-compose-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0e0dfcfe2538da6bb723eea42f0e9ece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4884, "upload_time": "2018-05-29T14:37:49", "url": "https://files.pythonhosted.org/packages/52/2d/62f5a977232cd10bcf0cedf2c471eb72da4647d20479914828b01108a5fa/telega-compose-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0e0dfcfe2538da6bb723eea42f0e9ece", "sha256": "cb28884cf89a6f119df88a39bd9cfb93d970dc6849019b5d8df1f5d0b46c263a" }, "downloads": -1, "filename": "telega-compose-0.0.2.tar.gz", "has_sig": false, "md5_digest": "0e0dfcfe2538da6bb723eea42f0e9ece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4884, "upload_time": "2018-05-29T14:37:49", "url": "https://files.pythonhosted.org/packages/52/2d/62f5a977232cd10bcf0cedf2c471eb72da4647d20479914828b01108a5fa/telega-compose-0.0.2.tar.gz" } ] }