Skip to content

chore: change base container image to nvcr.io/nvidia/base/ubuntu:noble-20251013#20

Merged
drew merged 1 commit intomainfrom
19-change-base-container-to-nvidia-ngc
Mar 11, 2026
Merged

chore: change base container image to nvcr.io/nvidia/base/ubuntu:noble-20251013#20
drew merged 1 commit intomainfrom
19-change-base-container-to-nvidia-ngc

Conversation

@drew
Copy link
Copy Markdown
Collaborator

@drew drew commented Mar 11, 2026

Summary

  • Switches the base sandbox container image from ubuntu:24.04 to nvcr.io/nvidia/base/ubuntu:noble-20251013 to align with NVIDIA's NGC container ecosystem
  • All downstream sandbox images (openclaw, nemoclaw) inherit from this base, so the change propagates through the entire image hierarchy

Closes #19

@drew drew merged commit ac31bd5 into main Mar 11, 2026
9 checks passed
factory-octavian pushed a commit to factory-octavian/OpenShell-Community that referenced this pull request Apr 1, 2026
Closes NVIDIA#20, NVIDIA#36, NVIDIA#46

## Summary
- Replace the external `rsync` dependency with built-in tar-over-SSH for file synchronization, using the `tar` crate to stream archives through the existing SSH proxy tunnel
- Add a new `nav sandbox sync` subcommand supporting bidirectional file transfer (`--up` to push local files, `--down` to pull sandbox files)
- Add sync workflow example in `examples/sync-files.md`

## Changes

| File | Change |
|---|---|
| `crates/navigator-cli/Cargo.toml` | Add `tar = "0.4"` dependency |
| `crates/navigator-cli/src/ssh.rs` | Remove `sandbox_rsync()`, add `sandbox_sync_up()`, `sandbox_sync_down()`, `sandbox_sync_up_files()` |
| `crates/navigator-cli/src/run.rs` | Add `sandbox_sync_command()` dispatcher, update re-exports, update `--sync` call site |
| `crates/navigator-cli/src/main.rs` | Add `Sync` variant to `SandboxCommands` with `--up`/`--down` flags |
| `architecture/sandbox-connect.md` | Rewrite File Sync section for tar-over-SSH and new command |
| `examples/sync-files.md` | New example walkthrough for sync workflows |

## New UX

```bash
# Push local files up to sandbox
nav sandbox sync my-sandbox --up ./src /sandbox/src

# Pull sandbox files down to local
nav sandbox sync my-sandbox --down /sandbox/output ./output

# Existing --sync flag on create still works (now uses tar internally)
nav sandbox create --sync -- python main.py
```

## Design

- **No new host dependencies**: `tar` crate handles archive creation/extraction in Rust; `ssh` is already required. The sandbox side uses the `tar` binary from the base image.
- **No new server-side infrastructure**: reuses the existing SSH tunnel, no new gRPC RPCs or gateway changes.
- **Bidirectional**: the same tar-pipe pattern works for both push and pull by reversing which side produces and which consumes the archive.
- **No compression** for v1 — the SSH tunnel is local-network; can add gzip via `flate2` later.

## Test Plan
- All existing tests pass (`mise run pre-commit` green: fmt, clippy, 206 Rust tests, 6 Python tests)
- Manual e2e testing required for actual sandbox sync operations
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.

Change base container image to nvcr.io/nvidia/base/ubuntu:noble-20251013

1 participant