Skip to content

Standardize on colima for macOS; retire Docker Desktop as a supported engine - #195

Merged
JPDuchesne merged 5 commits into
mainfrom
jpd/185-colima-default
Sep 30, 2026
Merged

JPDuchesne merged 5 commits into
mainfrom
jpd/185-colima-default

Conversation

@JPDuchesne

Copy link
Copy Markdown
Contributor

Closes #185.

One supported container engine per host OS, and dev owns its lifecycle:

Host Engine dev up
macOS colima (per-user VM) wires brew's docker-buildx into the brew docker CLI (cliPluginsExtraDirs, merged never clobbered), starts the VM sized from build.container.resources
Linux / WSL2 bare dockerd nothing to start
  • ContainerEngine.resolve takes host_os:; no record → colima on darwin, bare :docker elsewhere. Kind :docker_desktop is gone; a docker record is the opt-out to bare docker (Desktop users land here: unsupported, not blocked). Explicit DOCKER_HOST still wins and is left alone.
  • New EngineProvisioner (up's engine half) and DockerCliPlugins (the config.json line). UpCommand runs it after credentials, before the deps install, only for projects declaring build.container.
  • DockerDesktopProvisioner deleted (dead code). Colima wording stops calling the VM "the agent's".
  • README: per-OS engine table + Mac migration note.

Companion: homebrew-d3mlabs dev-core gains depends_on colima docker docker-buildx so brew upgrade brings the CLI and plugin Desktop used to provide. cellbound-3d / snappy Windows bootstraps move to dockerd inside the WSL2 distro in their own PRs.

Not in scope: dev engine up|down|status and idle-stop (#187).

Made with Cursor

JPDuchesne and others added 5 commits September 30, 2026 10:13
… dockerd elsewhere

ContainerEngine.resolve takes host_os (Dev::Deps.detect_host by default).
With no record, darwin resolves the user's own colima VM — the one macOS
engine whose whole lifecycle dev can own — and linux/windows resolve bare
dockerd, where there is no VM to own. The :docker_desktop kind becomes
:docker: a `docker` record is now the opt-out from the macOS default,
bare docker with no env, reaching whatever daemon the CLI's context does.
Docker Desktop is unsupported but not blocked (#185).

Co-authored-by: Cursor <cursoragent@cursor.com>
Without Docker Desktop the docker CLI and its buildx plugin come from
Homebrew, which drops the plugin under $(brew --prefix)/lib/docker/cli-plugins
and expects a cliPluginsExtraDirs entry in ~/.docker/config.json. This owns
that one line: merged into whatever the file already holds, idempotent, and
never rewriting a config it cannot parse (#185).

Co-authored-by: Cursor <cursoragent@cursor.com>
EngineProvisioner is up's engine half: resolve the engine for this host;
leave an explicit DOCKER_HOST alone; on macOS wire the brew CLI's plugins
and, for the colima default, start the VM sized from the repo's
build.container.resources hint. Linux/WSL2 bare dockerd is a system
service — nothing to start. UpCommand runs it after credentials and before
the deps install, only when the project declares build.container.

The ColimaProvisioner's wording stops calling the VM the agent's: it is the
one macOS engine, for humans and agent accounts alike (#185).

Co-authored-by: Cursor <cursoragent@cursor.com>
Dead since ContainerEngine stopped resolving a Desktop kind: nothing
constructed it, and its verify-only contract ("start Docker Desktop
yourself") is the opposite of what dev now does with the engine. The
runner status line stops calling colima the agent's engine (#185).

Co-authored-by: Cursor <cursoragent@cursor.com>
…Desktop (#185)

Co-authored-by: Cursor <cursoragent@cursor.com>
@codecov

codecov Bot commented Sep 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@JPDuchesne
JPDuchesne merged commit c57bc67 into main Sep 30, 2026
5 checks passed
@JPDuchesne
JPDuchesne deleted the jpd/185-colima-default branch September 30, 2026 14:42
JPDuchesne added a commit that referenced this pull request Sep 30, 2026
…at missed the #195 merge (#185)

The sizing-at-creation caveat from that stranded commit is dropped: the
ratchet in this branch makes it untrue.

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Standardize on colima for macOS; retire Docker Desktop as a supported engine

1 participant