mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-09-25 14:06:18 +00:00
docs(sandbox): fix Apple Container verification instructions (#5605)
This commit is contained in:
parent
71087f2f8e
commit
f2463e6d4a
@ -7,6 +7,8 @@ DeerFlow now supports Apple Container as the preferred container runtime on macO
|
|||||||
Starting with this version, DeerFlow automatically detects and uses Apple Container on macOS when available, falling back to Docker when:
|
Starting with this version, DeerFlow automatically detects and uses Apple Container on macOS when available, falling back to Docker when:
|
||||||
- Apple Container is not installed
|
- Apple Container is not installed
|
||||||
- Running on non-macOS platforms
|
- Running on non-macOS platforms
|
||||||
|
- A restricted sandbox network mode is configured
|
||||||
|
- Managed Docker sandboxes need startup reconciliation
|
||||||
|
|
||||||
This provides better performance on Apple Silicon Macs while maintaining compatibility across all platforms.
|
This provides better performance on Apple Silicon Macs while maintaining compatibility across all platforms.
|
||||||
|
|
||||||
@ -48,13 +50,14 @@ container system start
|
|||||||
|
|
||||||
### Automatic Detection
|
### Automatic Detection
|
||||||
|
|
||||||
The `AioSandboxProvider` automatically detects the available container runtime:
|
The `LocalContainerBackend` automatically detects the available container runtime:
|
||||||
|
|
||||||
1. On macOS: Try `container --version`
|
1. On macOS with open sandbox networking: Try `container --version`
|
||||||
- Success → Use Apple Container
|
- Success and no managed Docker sandboxes → Use Apple Container
|
||||||
|
- Managed Docker sandboxes found → Keep Docker so they remain visible to startup reconciliation
|
||||||
- Failure → Fall back to Docker
|
- Failure → Fall back to Docker
|
||||||
|
|
||||||
2. On other platforms: Use Docker directly
|
2. With restricted sandbox networking or on other platforms: Use Docker directly
|
||||||
|
|
||||||
### Runtime Differences
|
### Runtime Differences
|
||||||
|
|
||||||
@ -80,9 +83,9 @@ docker stop <id> # Auto-removes due to --rm
|
|||||||
|
|
||||||
### Implementation Details
|
### Implementation Details
|
||||||
|
|
||||||
The implementation is in `backend/packages/harness/deerflow/community/aio_sandbox/aio_sandbox_provider.py`:
|
The implementation is in `backend/packages/harness/deerflow/community/aio_sandbox/local_backend.py`:
|
||||||
|
|
||||||
- `_detect_container_runtime()`: Detects available runtime at startup
|
- `_detect_runtime()`: Detects available runtime at startup
|
||||||
- `_start_container()`: Uses detected runtime, skips Docker-specific options for Apple Container
|
- `_start_container()`: Uses detected runtime, skips Docker-specific options for Apple Container
|
||||||
- `_stop_container()`: Uses appropriate stop command for the runtime
|
- `_stop_container()`: Uses appropriate stop command for the runtime
|
||||||
|
|
||||||
@ -93,14 +96,14 @@ No configuration changes are needed! The system works automatically.
|
|||||||
However, you can verify the runtime in use by checking the logs:
|
However, you can verify the runtime in use by checking the logs:
|
||||||
|
|
||||||
```
|
```
|
||||||
INFO:deerflow.community.aio_sandbox.aio_sandbox_provider:Detected Apple Container: container version 0.1.0
|
INFO:deerflow.community.aio_sandbox.local_backend:Detected Apple Container: container version 0.1.0
|
||||||
INFO:deerflow.community.aio_sandbox.aio_sandbox_provider:Starting sandbox container using container: ...
|
INFO:deerflow.community.aio_sandbox.local_backend:Starting container using container: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
Or for Docker:
|
Or for Docker:
|
||||||
```
|
```
|
||||||
INFO:deerflow.community.aio_sandbox.aio_sandbox_provider:Apple Container not available, falling back to Docker
|
INFO:deerflow.community.aio_sandbox.local_backend:Apple Container not available, falling back to Docker
|
||||||
INFO:deerflow.community.aio_sandbox.aio_sandbox_provider:Starting sandbox container using docker: ...
|
INFO:deerflow.community.aio_sandbox.local_backend:Starting container using docker: ...
|
||||||
```
|
```
|
||||||
|
|
||||||
## Container Images
|
## Container Images
|
||||||
@ -172,18 +175,17 @@ make clean # Full cleanup including logs
|
|||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
Test the container runtime detection:
|
Test the macOS runtime selection logic:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd backend
|
cd backend
|
||||||
python test_container_runtime.py
|
uv run python -m pytest \
|
||||||
|
tests/test_aio_sandbox_local_backend.py::test_darwin_open_keeps_docker_to_reconcile_restricted_sandbox \
|
||||||
|
tests/test_aio_sandbox_local_backend.py::test_darwin_open_uses_apple_container_without_managed_docker_sandboxes \
|
||||||
|
-q
|
||||||
```
|
```
|
||||||
|
|
||||||
This will:
|
These tests mock the runtime commands and require neither Docker nor the Apple Container service.
|
||||||
1. Detect the available runtime
|
|
||||||
2. Optionally start a test container
|
|
||||||
3. Verify connectivity
|
|
||||||
4. Clean up
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user