Running MAC Without the Package
If you are evaluating MAC from a source checkout, you can run the CLI directly from the build tree.
From a Source Checkout
~$ make cli
~$ ./cli/mac env set MAC_CONFIG_DIR=$PWD/deploy
~$ ./cli/mac start all --local # builds images from ./services, then runs them
The same env / pull / build / start / stop / status / clean subcommands all
work; only the binary path and MAC_CONFIG_DIR differ. The --local flag (or
MAC_IMAGE_SOURCE=local) makes start build the images from the checkout instead of
pulling from the registry; make build / mac build do the same as a separate step.
If your $HOME is NFS-shared across nodes, export MAC_CONFIG_DIR in the shell instead
of mac env set so the checkout path applies only to the current node.
Direct docker compose Usage
The CLI is a convenience wrapper around docker compose plus the agent registration
handshake. If you prefer to drive Compose yourself:
~$ cd /etc/mango/mac # or your $MAC_CONFIG_DIR
~$ docker compose -f docker-compose.master.yml up -d
~$ docker compose --profile nvidia -f docker-compose.agent.yml up -d # or --profile amd
The GPU vendor exporters (dcgm-exporter on NVIDIA, rocm-exporter on AMD) are gated
behind Compose profiles:, so a bare docker compose -f docker-compose.agent.yml up -d
brings up everything except the GPU exporter. Pass --profile nvidia or
--profile amd to start it — this is the flag mac start supplies automatically from the
detected GPU profile.
Note that bypassing mac start agent also skips the auto-registration step — the agent
will only appear on the master once it is successfully scraped by Prometheus.
When This Matters
- Reproducing a customer issue from a specific git ref
- Hot-patching the api-server or web-ui in a lab
- Running MAC images on Kubernetes via your own manifest