apple-compose

command module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 11, 2026 License: MIT Imports: 1 Imported by: 0

README

apple-compose

CI Release Go Report Card Platform

Docker Compose-compatible CLI for Apple Containers. Same model as docker compose — a CLI that orchestrates a container runtime, not a daemon itself. Uses Apple's runtime instead of Docker Desktop / dockerd.

Requirements

  • macOS 26+ (Tahoe), Apple Silicon (arm64)
  • Apple container CLI 1.0.0+, running (container system start)

Install

curl -fsSL https://raw.githubusercontent.com/Rhevin/apple-compose/main/install.sh | sh

Or download a release, or make build from source.

Quick start

container system start          # one-time
apple-compose up
apple-compose ps
apple-compose logs web --follow
apple-compose down

Commands

up · down · ps · logs · pull · exec · run · stop · start · restart · kill · rm · cp · top · stats · images · port · config · ls · prune · login · logout

Flag Description
-f, --file Compose file (default: docker-compose.yml)
-p, --project-name Override project name
--profile Enable service profiles
--dry-run Print commands without running (up)
--wait Wait for services to reach running state (up, default 30s)
--no-deps Skip dependency services (up)

Not implemented: pause, unpause, events, wait, watch, scale, commit, push.

Compose file support

Supported: image, ports, environment, volumes, depends_on, command, deploy.resources.limits, shm_size, stop_signal, stop_grace_period, profiles

Ignored / skipped: build (warn + skip — pull pre-built images instead), healthcheck (use --wait), restart (no --restart in Apple CLI), secrets, configs, extends

Limitations

  • Pull-only — no build: support; pre-build with docker build or container build
  • No restart policy — services won't auto-restart on crash
  • Named volumes persist at ~/.apple-compose/volumes/<project>/ after down
  • virtiofschown/chmod on mounts fails; workaround: PGDATA=/tmp/pgdata for postgres
  • DNS — hostname resolution within project networks is unreliable; use IPs or published ports
  • No multi-file compose or automatic docker-compose.override.yml merging
Networking

Creates a per-project network (<project>_default). On macOS 26+, containers attach to it and can reach each other by service name when DNS works. Otherwise publish ports and use localhost.

Named volumes

Host path: ~/.apple-compose/volumes/<project>/<volume>/. Clean up with rm -rf ~/.apple-compose/volumes/<project>/.

Registry auth
apple-compose login registry.example.com
apple-compose logout ghcr.io

Benchmarks

Apple Container vs OrbStack on M-series — see benchmark/README.md. Run locally: ./benchmark/benchmark.sh.

Contributing

See CONTRIBUTING.md. Quick checks: make fmt && make test && make lint.

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL