Support podman and podman-compose - #148
Conversation
Supports podman as a built-in drop-in alternative container runtime to docker. - Adds `dockerPath` and `dockerComposePath` configuration settings. - Automatically detects `podman` and `podman-compose` if `docker` is not present on the host PATH. - Uses configured/detected container runtime executable for all orchestration (up, exec, inspect, ps, stop, rm, rmi) and container port query operations. - Appends correct parameters to devcontainer CLI commands.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
@coderabbitai review |
✅ Action performedReview finished.
|
WalkthroughThe plugin now detects Docker or Podman commands asynchronously and selects an available compose command. User configuration tolerates missing or invalid files and preserves explicit executable paths. Devcontainer operations pass configured Docker and Docker Compose paths through startup, execution, inspection, status, and cleanup flows. Port allocation uses shared configuration and the configured container runtime. Unit tests cover runtime detection, executable argument propagation, and Podman port inspection. Mergeability Score: 🟡 Moderate · up to Podman-only environments may receive an invalid Compose executable and fail when starting a development container. The fallback detection and unsupported-configuration handling should be fixed before merging. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
test/unit/ports.test.js (1)
341-349: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winProvide process output streams in this mock.
runCommandaccesseschild.stdoutandchild.stderrbefore it waits forclose. This mock omits both streams.getContainerPortcatches the resulting rejection, so the test passes before it exercises normal command handling.Add readable
stdoutandstderremitters. Simulate successfulpsandinspectcalls. Assert that both calls usepodman.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: db6a1ebe-2980-4ebc-9652-bf123068954e
📒 Files selected for processing (6)
plugin/core/config.jsplugin/core/devcontainer.jsplugin/core/ports.jstest/unit/config.test.jstest/unit/devcontainer.test.jstest/unit/ports.test.js
Co-Authored-By: openai/gpt-5.6-terra <noreply@openai.com>
# Conflicts: # plugin/core/config.js # plugin/core/devcontainer.js # plugin/core/ports.js # test/unit/config.test.js # test/unit/devcontainer.test.js # test/unit/ports.test.js
Adds built-in support for podman as an alternative to docker, with automatic fallback detection and custom config support. Includes extensive unit tests.
Fixes #147
PR created automatically by Jules for task 14897577984256613295 started by @athal7