Merge commit 'd803bfe2b1fe7f5e219e50ac20d6801a0a58ac75' as 'vendor/ruvector'
This commit is contained in:
57
vendor/ruvector/examples/rvf/scripts/rvf-docker.sh
vendored
Executable file
57
vendor/ruvector/examples/rvf/scripts/rvf-docker.sh
vendored
Executable file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
# rvf-docker.sh — Run RVF in Docker (any platform)
|
||||
# Usage: bash scripts/rvf-docker.sh
|
||||
set -euo pipefail
|
||||
|
||||
echo "=== RVF Docker Quick Start ==="
|
||||
|
||||
# ── 1. Build the Docker image ───────────────────────────────
|
||||
echo "[1/4] Building RVF Docker image..."
|
||||
cat > /tmp/Dockerfile.rvf <<'DOCKERFILE'
|
||||
FROM rust:1.87-bookworm AS builder
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN cd crates/rvf && cargo build -p rvf-cli --release
|
||||
RUN cp target/release/rvf /usr/local/bin/rvf
|
||||
|
||||
FROM debian:bookworm-slim
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||
COPY --from=builder /usr/local/bin/rvf /usr/local/bin/rvf
|
||||
WORKDIR /data
|
||||
ENTRYPOINT ["rvf"]
|
||||
DOCKERFILE
|
||||
|
||||
REPO_ROOT="$(cd "$(dirname "$0")/../../.." && pwd)"
|
||||
docker build -f /tmp/Dockerfile.rvf -t rvf:latest "$REPO_ROOT"
|
||||
echo " Built: rvf:latest"
|
||||
|
||||
# ── 2. Create and populate a store ──────────────────────────
|
||||
echo "[2/4] Creating and populating vector store..."
|
||||
docker run --rm -v "$(pwd)/output:/data" rvf:latest create demo.rvf --dimension 128
|
||||
echo " Created output/demo.rvf"
|
||||
|
||||
# ── 3. Ingest sample data ──────────────────────────────────
|
||||
echo "[3/4] Ingesting sample vectors..."
|
||||
cat > /tmp/rvf_sample.json <<'JSON'
|
||||
[
|
||||
{"id": 1, "vector": [0.1, 0.2, 0.3]},
|
||||
{"id": 2, "vector": [0.4, 0.5, 0.6]},
|
||||
{"id": 3, "vector": [0.7, 0.8, 0.9]}
|
||||
]
|
||||
JSON
|
||||
docker run --rm \
|
||||
-v "$(pwd)/output:/data" \
|
||||
-v "/tmp/rvf_sample.json:/input.json:ro" \
|
||||
rvf:latest ingest demo.rvf --input /input.json --format json
|
||||
echo " Ingested 3 vectors"
|
||||
|
||||
# ── 4. Query and inspect ───────────────────────────────────
|
||||
echo "[4/4] Querying and inspecting..."
|
||||
docker run --rm -v "$(pwd)/output:/data" rvf:latest query demo.rvf --vector "0.1,0.2,0.3" --k 2
|
||||
docker run --rm -v "$(pwd)/output:/data" rvf:latest inspect demo.rvf
|
||||
|
||||
echo ""
|
||||
echo "=== Done ==="
|
||||
echo " Docker image: rvf:latest"
|
||||
echo " Store: output/demo.rvf"
|
||||
echo " Run any rvf command: docker run --rm -v \$(pwd)/output:/data rvf:latest <command>"
|
||||
Reference in New Issue
Block a user