[Feature] Automated Multi-Service Deployment with Docker Compose and Production-Ready CI/CD Pipeline#99
Open
GaneshPatil7517 wants to merge 2 commits intohyphae:add-license-1from
Conversation
…dardize MongoDB port - Add multi-stage Dockerfile that builds all APIS services from source - Add docker-compose.yml with MongoDB 6.0 service and health checks - Add entrypoint.sh to orchestrate all service startup - Add .dockerignore to optimize Docker build context - Fix CI workflow: target main branch, upgrade to ubuntu-22.04 and MongoDB 6.0 - Add post-deployment health checks to CI pipeline - Standardize MongoDB port from 27018 to 27017 across start.sh and stop.sh - Update docs/INSTALL_DOCKER.md with docker compose quick start - Add docs/DEVELOPMENT.md with architecture overview and dev guide Closes hyphae#98 Signed-off-by: Ganesh Patil <7030871503ganeshpatil@gmail.com>
29270e5 to
05b3992
Compare
Author
|
hello @WillSams Sir and @AkarshSahlot Sir successfully created a PR for #98 and implemented all features the PR is ready to review........ |
There was a problem hiding this comment.
Pull request overview
Adds a Docker Compose–based deployment path and updates CI and documentation to reduce contributor setup friction, while standardizing MongoDB to port 27017.
Changes:
- Add multi-stage Docker image build plus a single-container entrypoint that starts all APIS services.
- Add
docker-compose.ymlorchestration for MongoDB 6.0 + APIS container, and update docs with a Compose quick start + new development guide. - Fix CI triggers/runner version, upgrade CI MongoDB to 6.0, and add basic HTTP health probes; standardize MongoDB scripts to port 27017.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
mongodb/start.sh |
Switch MongoDB start port to 27017. |
mongodb/stop.sh |
Update stop script’s port grep to 27017. |
docker/Dockerfile |
New multi-stage build that clones/builds all sub-repos and produces a runtime image. |
docker/entrypoint.sh |
New entrypoint that launches Java + Python services inside the APIS container. |
docker-compose.yml |
New Compose stack for MongoDB + APIS container with healthcheck gating. |
.github/workflows/makefile.yml |
CI now targets main, runs on ubuntu-22.04, installs MongoDB 6.0, and performs HTTP probes with cleanup on failure. |
.dockerignore |
Reduce Docker build context by excluding VCS, docs, IDE files, and MongoDB data. |
docs/INSTALL_DOCKER.md |
Add Compose “Quick Start” instructions and keep manual path as an alternative. |
docs/DEVELOPMENT.md |
New contributor development guide including Compose commands and architecture overview. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- entrypoint.sh: switch from manage.py runserver to gunicorn for production - entrypoint.sh: fix hyphenated settings module name to use underscores - entrypoint.sh: add signal trapping (TERM/INT) and wait -n for proper shutdown - Dockerfile: remove duplicate mongodb COPY layer - Dockerfile: fix port-fix sed to check both underscore and hyphen settings filenames - makefile.yml: replace sleep 30 with wait_for_url readiness loop - makefile.yml: fail health check step if any of the 4 services is down Signed-off-by: Ganesh Patil <7030871503ganeshpatil@gmail.com>
964161e to
f997c55
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds reproducible Docker-based deployment, fixes the CI/CD pipeline, and standardizes the MongoDB port configuration. This resolves the key barrier for new contributors who currently must follow a 10+ step manual Docker setup.
Closes #98
Changes
Docker Compose Deployment
docker/Dockerfile- Multi-stage build (builder + runtime) that clones all sub-repos, builds Java services with Maven, sets up Python venvs, and produces a lean runtime imagedocker-compose.yml- Orchestrates MongoDB 6.0 (with health checks) + APIS app service. Single command:docker compose up --builddocker/entrypoint.sh- Starts all 8 services (4x apis-main, apis-ccc, apis-log, apis-web, apis-emulator, apis-main_controller, apis-service_center, apis-tester) in correct order.dockerignore- Optimizes build context by excluding .git, docs, IDE filesCI/CD Pipeline Fixes
mainbranch (was onlyadd-license-1)ubuntu-20.04toubuntu-22.04apt installwith singleapt-get install -ycallif: always()on stop step to ensure cleanup on failureMongoDB Port Standardization
mongodb/start.shfrom port 27018 → 27017mongodb/stop.shgrep pattern from 27018 → 27017apis-service_center-demo.pysettings (27018 → 27017)Documentation
docs/INSTALL_DOCKER.mdwith Docker Compose quick start sectiondocs/DEVELOPMENT.mdwith architecture overview, build order, and troubleshootingTesting
Tested locally with Docker on Windows:
apis_demodatabase populated)/static/ui_example/staff/visual.htmlImpact
docker compose up --build