Repository navigation
fix(desktop): start an installed Docker Desktop instead of installing Podman beside it - #831
dustywusty wants to merge 3 commits into
Conversation
…hen it is not; never Podman in its place With Docker Desktop installed but quit, setup found no answering engine and installed Podman behind an administrator prompt: a second engine on a machine that already had Docker, and one local Intelligence refuses. On macOS and Windows the engine is now Docker Desktop. Installed and stopped, it is opened and waited for. Missing, Docker's own installer (4.96.3, pinned to the digests Docker publishes) is downloaded with progress, installed without accepting Docker's terms, and opened so the person accepts them in Docker's window. A Podman somebody already has is still used; a stopped docker with no Docker Desktop (OrbStack, Colima) is left for its owner to start. Linux is unchanged.
The non-macOS branch mapped a spawned process to Default::default(), leaving the type to inference, which had nothing to go on: error[E0282] on Linux and Windows. It is std::process::ExitStatus's default, which reads as success; a started Docker Desktop is the whole job there.
|
Linux and Windows CI failed to compile this branch: root cause and fix
|
The engine choice on macOS and Windows is now: a Docker that answers is used; an installed Docker Desktop that is stopped is started; any other stopped `docker` (OrbStack, Colima) is left for its owner; a machine with no Docker gets Podman, as it did before; an existing Podman is used. OpenBot no longer installs Docker Desktop itself, so its pinned installers, the streamed download and the 15-minute first-start wait are removed. Linux is unchanged.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 36f69695af
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let said = start_docker()?; | ||
| place_compose(&into)?; | ||
| return Ok(said); |
There was a problem hiding this comment.
Skip Podman machine setup after starting Docker Desktop
On macOS or Windows with Docker Desktop stopped and no Podman installed, this branch now starts Docker successfully and returns success without installing Podman, but engine_ready subsequently calls acquire::create_machine, acquire::start_machine, and the health gate for acquire::address() unconditionally. Those functions explicitly invoke Podman, so local installation fails at podman machine list even though Docker is now answering. Re-detect and return the ready Docker address after this operation, bypassing the Podman-only machine preparation.
Useful? React with 👍 / 👎.
| if let Some(home) = std::env::var_os("HOME") { | ||
| places.push(PathBuf::from(home).join("Applications/Docker.app")); |
There was a problem hiding this comment.
Resolve the Docker CLI for the user-local app location
On macOS with Docker Desktop installed in ~/Applications and its CLI absent from OpenBot's inherited PATH, this newly recognized location causes setup to open Docker Desktop, but startup can never be detected. answers() delegates to engine::program(Engine::Docker), whose fallback locations include only /Applications/Docker.app and the system CLI directories, not this user-local bundle. Consequently the app reports a startup timeout after five minutes even if Docker Desktop is running. Include the discovered bundle's CLI in engine resolution so detection and subsequent engine commands can use it.
Useful? React with 👍 / 👎.
What
On macOS and Windows, OpenBot Desktop picks its container engine in this order:
dockeris installed but stopped (OrbStack, Colima): it is left for its owner to start, with a message that says so.Linux: unchanged.
Why
With Docker Desktop installed but quit, setup found no engine that answered and installed Podman behind an administrator prompt. That left a second engine on a machine that already had Docker.
What it does not do
OpenBot does not install Docker Desktop. An earlier revision of this PR did; it was removed so that a machine with no Docker gets Podman, as it always has.
Test
install::testscover:docker;dockercommand beside it;docker_desktop::testscover starting a stopped Docker Desktop and the time limit.cargo fmt --checkandcargo clippy --all-targets -D warningsare clean.