{"id":18544710,"url":"https://github.com/131/docker-dspp","last_synced_at":"2025-04-09T19:31:10.190Z","repository":{"id":42079190,"uuid":"362508263","full_name":"131/docker-dspp","owner":"131","description":"A docker stack compiler","archived":false,"fork":false,"pushed_at":"2024-07-12T16:51:46.000Z","size":256,"stargazers_count":2,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-11-05T16:53:10.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/131.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-04-28T14:57:00.000Z","updated_at":"2024-07-12T16:51:45.000Z","dependencies_parsed_at":"2023-09-22T08:35:03.602Z","dependency_job_id":"24ba2253-c365-4424-8e68-c49c97f05282","html_url":"https://github.com/131/docker-dspp","commit_stats":{"total_commits":123,"total_committers":4,"mean_commits":30.75,"dds":0.08943089430894313,"last_synced_commit":"7f3a5acd49517fa82f262b293a394e8cf596d91b"},"previous_names":[],"tags_count":113,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fdocker-dspp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fdocker-dspp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fdocker-dspp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/131%2Fdocker-dspp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/131","download_url":"https://codeload.github.com/131/docker-dspp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223407794,"owners_count":17140563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T20:17:22.913Z","updated_at":"2024-11-06T20:17:23.601Z","avatar_url":"https://github.com/131.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[dspp](https://github.com/131/dspp) is a **d**ocker **s**tack **p**re**p**rocessor\n\n[![Build Status](https://github.com/131/docker-dspp/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/131/docker-dspp/actions/workflows/test.yml)\n[![Coverage Status](https://coveralls.io/repos/github/131/docker-dspp/badge.svg?branch=master)](https://coveralls.io/github/131/docker-dspp?branch=master)\n[![Version](https://img.shields.io/npm/v/dspp.svg)](https://www.npmjs.com/package/dspp)\n[![License](https://img.shields.io/badge/license-MIT-blue.svg)](http://opensource.org/licenses/MIT)\n\n\n\n# Motivation\nComplex docker stack will be composed out of dozen/hundreds of microservices, volumes, and config.\nWrapping all of them in a single compose file is tedious, and lacks flexibility.\n\ndspp allows you to split your compose file, define YAML macros/anchor, use services as metadata references, inline configuration contents, use directories as provided.\n\n\n# Features\n\n* Write your Docker stack as individual YAML service files, use dspp to compile it\n* Deploy an entire stack or filtered by service name\n* Availability of YAML macros\n* Each YAML file is parsed as a JavaScript literal: they can have embedded JS code\n* Configs can be written as files, directories, bundles, embedded YAML converted to JSON on the fly, or other formats\n\n\n# Usage\n\n`production.yml`\n```yaml\nversion: \"3.3\"\n\nname: my-stack\n\nservices:\n  service1:\n    image: httpd:2.4\n```\n\nOn the entire stack:\n```bash\n# interactive session\ndspp production.yml\n\n# then use \"plan\" and \"apply\" command in the interactive session\n\n# alternatively\ndspp production.yml --ir://raw --ir://run=parse --write | docker stack deploy --compose-file - my-stack\n```\n\nOn a specific service in the stack:\n```bash\n# Use\ndspp production.yml service1\n# to work only on the specific \"service1\" service\n```\n\nSee all available commands in [Commands docs](./docs/CLI_COMMANDS.md).\n\n\n# Installation instructions\n```bash\n\n# requires git, most \u0026 colordiff\napt-get install git most colordiff\n\nnpx dspp my-stack.yml\n```\n\n\n# The dspp stack file: syntax and examples\n\nThe [dspp stack file](./docs/SYNTAX_STACK_FILE.md) is classic compose file that can include / reference other ones, to compile all them in a stack.\n\nTo add [configs](./docs/SYNTAX_CONFIGS.md) and other native Compose Spec elements to your services, follow the same rules as the services. Split them into individual files, reference them in your dspp stack file, and redeploy.\n\n\n# Advanced usage\n\n[Interpolating JavaScript variables in plain YAML files](./docs/ADVANCED_INTERPOLATE.md)\n\n[Reusable snippets with YAML macros](./docs/ADVANCED_MACROS.md)\n\n[Command-line flags](./docs/CLI_FLAGS.md)\n\n[YAML object merging: overrides, or how to set up qa/staging/local alternate stacks](./docs/ADVANCED_MERGING.md)\n\n\n\n# Credits\n* [131](https://github.com/131)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F131%2Fdocker-dspp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F131%2Fdocker-dspp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F131%2Fdocker-dspp/lists"}