This repository was archived by the owner on Feb 21, 2026. It is now read-only.
forked from qwibitai/nanoclaw
-
Notifications
You must be signed in to change notification settings - Fork 0
[Upstream PR #234] Docker runtime support with auto-detection #103
Copy link
Copy link
Open
Description
Summary
Upstream PR: qwibitai#234
Author: TerrifiedBug
Status: OPEN
Changes: +221 / -73 LOC, 4 files
Adds auto-detection of Docker alongside Apple Container so NanoClaw works on Linux without source code modifications.
How It Works
- Startup tries
docker infofirst, then falls back tocontainer system status - Once detected, all container operations (spawn, stop, build, cleanup) go through unified wrapper
- No config flags, no env vars - just works with whatever's installed
What's Different from /convert-to-docker skill
- Existing skill rewrites source files at setup time (violates contribution guidelines)
- This PR supports both runtimes from same codebase
- No source patching, no merge conflicts on upstream updates
- Can switch between runtimes without code changes
Changes
src/container-runtime.ts(NEW) - Runtime detection, unified APIsrc/container-runner.ts- Uses wrapper instead of hardcoded CLI callssrc/index.ts- ReplacesensureContainerSystemRunning()withensureContainerRuntime()(net -60 lines)container/build.sh- Auto-detects CLI for image builds
Risk
MEDIUM
- Changes core container abstraction
- Author tested on Ubuntu 24.04 but not macOS
- Needs Mac testing to verify Apple Container codepath
Recommendation
🟡 MONITOR
- Good architectural direction (runtime abstraction)
- Wait for Mac testing confirmation
- Monitor for bugs after merge
OmniAura Considerations
- We use Apple Container on LocalOmni (Mac)
- We use Docker-based containers on Sprites (Fly.io)
- This PR could simplify our multi-backend architecture
- Consider adopting after proven stable
Action Items
- Wait for upstream merge
- Monitor for Mac testing feedback
- Test on both LocalOmni (Apple Container) and Sprites (Docker)
- Consider adopting if stable
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels