docs/guides/agent/agent_quickstarts/sandbox_quickstart.md
A secure, pluggable code execution backend designed for RAGFlow and other applications requiring isolated code execution environments.
The architecture consists of isolated Docker base images for each supported language runtime, managed by the executor manager service. The executor manager orchestrates sandboxed code execution using gVisor for syscall interception and optional seccomp profiles for enhanced syscall filtering.
29.1.0 or higher to stay compatible with the latest Docker daemons.:::tip NOTE
The error message client version 1.43 is too old. Minimum supported API version is 1.44 indicates that your executor manager image's built-in Docker CLI version is lower than 29.1.0 required by the Docker daemon in use. To solve this issue, pull the latest infiniflow/sandbox-executor-manager:latest from Docker Hub or rebuild it in ./sandbox/executor_manager.
:::
The sandbox uses isolated base images for secure containerised execution environments.
Build the base images manually:
docker build -t sandbox-base-python:latest ./sandbox_base_image/python
docker build -t sandbox-base-nodejs:latest ./sandbox_base_image/nodejs
Alternatively, build all base images at once using the Makefile:
make build
Next, build the executor manager image:
docker build -t sandbox-executor-manager:latest ./executor_manager
Verify that gVisor is properly installed and operational.
Configure the .env file located at docker/.env:
Add the following entry to your /etc/hosts file to resolve the executor manager service:
127.0.0.1 es01 infinity mysql minio redis sandbox-executor-manager
Start the RAGFlow service as usual.
Initialize the environment variables:
cp .env.example .env
Launch the sandbox services with Docker Compose:
docker compose -f docker-compose.yml up
Test the sandbox setup:
source .venv/bin/activate
export PYTHONPATH=$(pwd)
uv pip install -r executor_manager/requirements.txt
uv run tests/sandbox_security_tests_full.py
Run all setup, build, launch, and tests with a single command:
make
To follow logs of the executor manager container:
docker logs -f sandbox-executor-manager
Or use the Makefile shortcut:
make logs