{"id":20483700,"url":"https://github.com/cbuschka/cdwd-poc","last_synced_at":"2026-04-20T14:35:38.548Z","repository":{"id":95275653,"uuid":"89400299","full_name":"cbuschka/cdwd-poc","owner":"cbuschka","description":"Proof of Concept - Continous Deployment with Docker","archived":false,"fork":false,"pushed_at":"2017-04-26T20:27:52.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-05T16:17:31.890Z","etag":null,"topics":["continuous-deployment","deployment","docker","docker-compose"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cbuschka.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license","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":"2017-04-25T19:47:53.000Z","updated_at":"2017-09-11T13:23:34.000Z","dependencies_parsed_at":"2023-04-01T01:48:55.391Z","dependency_job_id":null,"html_url":"https://github.com/cbuschka/cdwd-poc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cbuschka/cdwd-poc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Fcdwd-poc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Fcdwd-poc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Fcdwd-poc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Fcdwd-poc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbuschka","download_url":"https://codeload.github.com/cbuschka/cdwd-poc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbuschka%2Fcdwd-poc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32050978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T11:35:06.609Z","status":"ssl_error","status_checked_at":"2026-04-20T11:34:48.899Z","response_time":94,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["continuous-deployment","deployment","docker","docker-compose"],"created_at":"2024-11-15T16:18:29.496Z","updated_at":"2026-04-20T14:35:38.530Z","avatar_url":"https://github.com/cbuschka.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Continous Deployment with Docker (Proof of concept) [![Build Status](https://travis-ci.org/cbuschka/cdwdpoc.svg?branch=master)](https://travis-ci.org/cbuschka/cdwdpoc) [![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/cbuschka/cdwdpoc/master/license)\n\nThis is a proof of concept to show how an app can be redeployed without service being interrupted. \n\nThe setup consists of a HTTP gateway (nginx proxy within a docker container) which serves requests to multiple app instances via an internal docker network. The gateway container is informed about starting and stopping app instances via docker events and updates the gateway config on demand.\n\nThe app is deployed as a docker container connected to the internal network.\n\nOn redeployment a new app instance is started, the redeployer waits for the app instance to finish start up and an old app instance is terminated until all old app instances are replaced.\n\n## Required prerequesites\n* docker and docker-compose installed\n* jdk 8 installed\n* mvn 3.x installed\n\n## Project Structure\n\n## Modules\n* app/ - a java spring boot webapp\n* app-container/ - docker container serving app instances\n* proxy-container/ - http gateway placed in front of apps\n\n## Build\n\n```\nmvn clean install\n```\n\n## Control script\n\n### Start the cluster\n```\n./ctrl.sh start\n```\n\n### Show cluster status\n```\n./ctrl.sh status\n```\n\n### Run tests on different console\n```\n./ctrl.sh runTest\n```\n\n### Scale up app instances\n```\n./ctrl.sh scale 5\n```\n\n### Redeploy\nThis command redeploy all app instances by \n* starting a new one,\n* waiting for the new instance to finish startup\n* and terminating an old instance.\n\n```\n./ctrl.sh redeploy\n```\n\n### Check cluster status\n```\n./ctrl.sh status\n```\n\n### Check output of tests\nThere may be no ! results.\n\n### Shutdown cluster\n```\n./ctrl.sh stop\n```\n\n## License\nCopyright (c) 2016 by Cornelius Buschka\n\n[MIT License](license)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbuschka%2Fcdwd-poc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbuschka%2Fcdwd-poc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbuschka%2Fcdwd-poc/lists"}