Skip to content

Choose a target and runtime

Choose where your project runs and which container engine mm uses.

A target is a machine where you run services. A runtime is the container tool mm uses on that machine: Docker Compose, Podman Compose, or Docker Swarm.

Use a local runtime

sh
mm target list
mm target preference set-runtime docker-compose
mm target preference show
mm doctor

Use podman-compose if that is your chosen engine. Preferences are private workstation settings; they do not change the repository.

To override the choice for one command:

sh
mm --environment local --runtime podman-compose --target local deploy plan

If the selected runtime is missing or unsupported, mm reports an error rather than switching to another engine.

Set environment-specific preferences

sh
mm target preference set-runtime docker-compose --environment local
mm target preference set-target production --environment production
mm target preference show

The target must already exist. To register a remote host, follow remote daemon setup; it requires verified SSH host and daemon identities, not just a hostname.

Which setting wins?

Environment selection uses --environment/MM_ENVIRONMENT, then default-environment. Target and runtime selection each use this order:

  1. Command-line flag.
  2. Private preference for the selected environment.
  3. Private preference for the project.
  4. Environment configuration.
  5. Project configuration.

If no runtime is selected there, mm uses the target's default runtime. The target must offer that runtime.

Runtime differences

Docker Compose and Podman Compose support local source mounts, jobs, container health, logs, and exec. Docker Swarm deploys from a manager to one or many nodes; see Run on a multi-node Swarm to pin services and share volumes. Swarm does not support development mounts, one-shot jobs, local-CA HTTPS routes, or operations that update files inside managed volumes.

See the support table for details. Remote operations go through mmd over SSH; mm does not connect directly to remote Docker or Podman sockets.