Microservices Docker
ZinTrust includes a separate microservices workspace workflow under services/.
This page documents how Docker fits into that workflow.
Important: this is distinct from zin add service (which scaffolds services inside a single project). The microservices scripts generate a domain folder like services/ecommerce/*.
What gets generated
When you generate a microservices domain, ZinTrust creates:
services/<domain>/<service>/...(one folder per service)services/<domain>/docker-compose.yml(local dev compose for the domain)
Generate a domain:
npm run microservices:generate -- ecommerce users,orders,payments --port 3001Notes:
<services>is a comma-separated list--portsets the base port (defaults to3001); services increment from there
Local development with Docker Compose
Run all services in a domain (plus shared infra declared in the compose file):
cd services/ecommerce
docker-compose up -dTo see logs:
docker-compose logs -fYou can customize services/<domain>/docker-compose.yml like any other compose setup:
- service environment variables
- port mappings
- database credentials / hostnames
- adding optional dependencies (Redis, queues, etc.)
Generating per-service Dockerfiles
The microservices CLI has a docker command that generates a minimal Dockerfile per service directory.
npm run microservices:docker -- ecommerce users,orders --registry localhost:5000What it does (current behavior):
- writes
services/<domain>/<service>/Dockerfile - prints a
docker build ...command you can run - does not automatically push images
After generating Dockerfiles, you can build images using compose:
docker-compose -f services/ecommerce/docker-compose.yml buildBundling for deployment
If you want a lightweight deployable artifact per service, use the bundler:
npm run microservices:bundle -- ecommerce users,orders --output dist/services --target-size 1This creates independent bundles under dist/services/<domain>-<service>/ and reports size/optimization status.