This repository contains several microservices and a gateway. This README explains how to run the entire application using Docker (Docker Desktop / Docker Engine) and Docker Compose on Windows (PowerShell). The instructions assume you only want to run the app with Docker (no local Node installs required).
Prerequisites:
- Install Docker Desktop (Windows) and enable WSL 2 backend or Hyper-V as required.
- Ensure
dockeranddocker compose(ordocker-compose) commands work in PowerShell.
Repository layout (root):
docker-compose.yaml— Compose file to start all services and the gateway.
Quick checklist before starting:
- Open PowerShell as Administrator (if Docker Desktop requires elevated permissions).
- Make sure Docker Desktop is running.
Start the whole system (recommended)
Run from the repository root where docker-compose.yaml is located:
PowerShell (Compose V2):
docker compose up -d --build
or (older CLI / compatibility):
docker-compose up -d --build
What this does:
- Builds images for each service using the included
Dockerfiles. - Creates and starts containers for all services defined in
docker-compose.yaml.
Follow logs
docker compose logs -f
or for a single service (replace SERVICE_NAME):
docker compose logs -f SERVICE_NAME
Stop and remove containers
docker compose down
Add --volumes to also remove anonymous volumes if needed:
docker compose down --volumes
Build or run a single service manually
If you need to build/run one service (e.g., SERVICE-HOSPITAL) without docker compose:
- Build the image (run from the service folder or specify context):
cd SERVICE-HOSPITAL
docker build -t healthplus-hospital:latest .
- Run the container (adjust port mapping to match the service’s internal port):
docker run -d --name hospital -p 3001:3001 healthplus-hospital:latest
Common Windows notes / troubleshooting
- If
docker composeis not found, trydocker-compose(older versions). - If Docker Desktop won't start, ensure WSL2 is installed and set as backend or enable Hyper-V.
- If containers fail due to DB connections, check each service's
config/dbconnection.json(the compose file may provide environment variables / network names). When using compose, services refer to each other by service name in the compose network.
Inspect containers and cleanup
- List running containers:
docker ps - Remove stopped containers:
docker container prune - Remove unused images:
docker image prune -a
Next steps / tips
- To change environment variables, add an
.envfile and/or editdocker-compose.yamlas appropriate. - For development you can attach to a container shell:
docker exec -it <container> powershellorbash(depending on image).
If you want, I can add example docker-compose commands for a single service or add a short troubleshooting section that inspects container health and DB connectivity.
Generated on Dec 05, 2025 — Docker-only run instructions.