Before you can run any InnovaTech SOA microservice locally, the shared infrastructure layer must be running. The project ships aDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Nelsoncg98/InnovaTech/llms.txt
Use this file to discover all available pages before exploring further.
docker-compose.yml at the repository root that provisions both database engines — PostgreSQL 15 for transactional services and MongoDB 6.0 for the product catalog — on an isolated bridge network. This is the only step that requires Docker; the microservices themselves run directly on the host via Maven.
Overview
The Compose file defines two services, one custom bridge network, and two named volumes:| Resource | Type | Purpose |
|---|---|---|
postgres-db | Service | Relational database for inventory, customers, and POS sales |
mongo-db | Service | Document database for the product catalog |
soa-network | Network (bridge) | Isolated network connecting both database containers |
postgres_data | Named volume | Persists PostgreSQL data across container restarts |
mongo_data | Named volume | Persists MongoDB data across container restarts |
Both containers join the
soa-network bridge network. Although the microservices connect to the databases via localhost during local development, the shared network ensures that any future containerised service can reach the databases by container name without needing host-mode networking.Services
postgres-db — PostgreSQL 15
The relational database is used by servicio-inventario and is planned as the backing store for servicio-clientes and servicio-ventapos. It runs on the lightweight Alpine variant of the official PostgreSQL 15 image.
| Property | Value |
|---|---|
| Image | postgres:15-alpine |
| Container name | innovatech-postgres |
POSTGRES_USER | innovatech |
POSTGRES_PASSWORD | secretpassword |
POSTGRES_DB | innovatech_db |
| Host port → Container port | 5433 → 5432 |
| Named volume | postgres_data:/var/lib/postgresql/data |
mongo-db — MongoDB 6.0
The document store backs the servicio-catalogo service and holds the product and pricing catalogue. The root admin credentials set here must match the URI used in servicio-catalogo’s application.yml.
| Property | Value |
|---|---|
| Image | mongo:6.0 |
| Container name | innovatech-mongo |
MONGO_INITDB_ROOT_USERNAME | admin |
MONGO_INITDB_ROOT_PASSWORD | secretpassword |
| Host port → Container port | 27017 → 27017 |
| Named volume | mongo_data:/data/db |
Full docker-compose.yml
The complete file as it appears in the repository root:
Commands
Use the following commands from the repository root (wheredocker-compose.yml lives):
Start all infrastructure services in the background
Verify both containers are running
innovatech-postgres and innovatech-mongo should show a running state before you start any microservice.Stop containers (data is preserved)
postgres_data, mongo_data) are retained — your data survives the shutdown.Port Mappings
| Service | Container Port | Host Port | Purpose |
|---|---|---|---|
| PostgreSQL | 5432 | 5433 | Relational DB (inventory, customers, POS) |
| MongoDB | 27017 | 27017 | Document DB (product catalog) |