By the end of this guide you will have MySQL 8, PostgreSQL 14, msvc-usuarios, and msvc-cursos running locally via Docker Compose, with health endpoints responding onDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Miguel-Rodriguez15/msvc/llms.txt
Use this file to discover all available pages before exploring further.
localhost:8001 and localhost:8002. No Kubernetes cluster is required for this path — it is the fastest way to explore the APIs and validate your environment before moving on to a full Kubernetes deployment.
Prerequisites
Docker & Docker Compose
Docker Engine 24+ and Docker Compose v2. Used to run databases and the pre-built service images from Docker Hub.
Java 17
Required only if you plan to run services outside of Docker or rebuild the JARs locally. Amazon Corretto 17 is recommended to match the production base image.
Maven 3.8+
Required only to compile the project and produce JARs locally. Not needed if you pull images directly from Docker Hub.
kubectl + Minikube
Required for the full OAuth2 flow including msvc-auth and msvc-gateway. Not needed for this Docker Compose quickstart.
Steps
Clone the repository
Clone the project to your local machine and change into the project root:The root directory contains the parent
pom.xml, docker-compose.yml, and all four service modules.Start databases only (development mode)
If you only need the databases running — for example, to start services locally from your IDE — bring up just the database containers:This starts:
- MySQL 8 on
localhost:3307with databasemsvc_usuariosand root passwordadmin123 - PostgreSQL on
localhost:5532with databasemsvc_cursos, userpostgres, and passwordpostgres123
data-mysql and data-postgres) and join the shared spring network.Start the full stack
To run the complete Docker Compose stack — databases plus both business microservices — use:This brings up four containers:
Both service containers read their configuration from
| Container | Image | Host Port |
|---|---|---|
mysql8 | mysql:8 | localhost:3307 |
postgres-cursos | postgres:latest | localhost:5532 |
msvc-usuarios | miguelrodriguez15/msvc-usuarios:latest | localhost:8001 |
msvc-cursos | miguelrodriguez15/msvc-cursos:latest | localhost:8002 |
.env files in their respective module directories (msvc-usuarios/.env and msvc-cursos/.env). Each service waits for its database container to be available before starting due to depends_on ordering.Verify service health
Once the containers are up, confirm both services are healthy by calling their Actuator health endpoints:A healthy service returns:If you see
"status":"DOWN" or a connection error, the service is still starting up or waiting on its database. Wait a few seconds and retry. You can inspect container logs with docker compose logs msvc-usuarios or docker compose logs msvc-cursos.msvc-auth and msvc-gateway are not included in the Docker Compose file. The Authorization Server and API Gateway require Kubernetes DNS-based service discovery (
lb://msvc-usuarios, lb://msvc-cursos) to function correctly and are only deployed via Kubernetes manifests. For the complete OAuth2 Authorization Code flow, see the Kubernetes deployment guide.