Goals
- Understand the pre-made Docker images available for OpenReward sandboxes
- Use any public Docker Hub image in a sandbox environment
- Build and push custom Docker images for specialized needs
- Configure the
imagefield inSandboxSettingsfor different use cases
Prerequisites
- An OpenReward account
- An OpenReward API key
- Docker installed locally (for custom images)
- Completion of the Building Agentic Environments tutorial
Introduction
When you create an OpenReward Sandbox, theimage field in SandboxSettings determines what software, libraries, and runtimes are available inside the container. Picking the right image means your agent has the tools it needs without installing packages at runtime.
OpenReward provides pre-made images for common use cases, but you can also use any public image from Docker Hub, or build and push your own. This page covers all three options and how they connect to your SandboxSettings configuration.
Note: OpenReward’s sandbox infrastructure runs on linux/amd64. If you’re building custom images on an ARM machine (e.g. Apple Silicon), you’ll need to target this platform explicitly — more on this below.
Pre-Made Images
We maintain two images that cover the most common agentic workloads:| Image | Description | Use Case |
|---|---|---|
generalreasoning/python-ds:3.12-tools | Python 3.12 with data science libraries (pandas, numpy, etc.) | Data analysis, file processing, general Python tasks |
generalreasoning/knowledge-worker | Document processing support (PDF, Excel, Word, PowerPoint) | Environments using pre-built Toolsets |
generalreasoning/python-ds:3.12-tools
This is the default image used by the orwd init --template sandbox scaffold. It includes Python 3.12, pip, and core data science libraries like pandas and numpy. Use this when your agent needs to write and execute Python code for data analysis, file manipulation, or general-purpose tasks.
generalreasoning/knowledge-worker
This image includes all the dependencies needed for the pre-built toolsets: pdfplumber, pypdf, reportlab, pdf2image, python-docx, openpyxl, and python-pptx. If your environment uses PDFToolset, ExcelToolset, WordToolset, or PowerPointToolset, this is the image to use.
Using Any Docker Hub Image
Theimage field in SandboxSettings accepts any public Docker Hub image. This is useful when you need a specific language runtime, a minimal base image, or something outside the Python ecosystem entirely.
Some common options:
| Image | Use Case |
|---|---|
python:3.11-slim | Minimal Python environment |
python:3.12 | Full Python with build tools |
node:20 | Node.js environments |
ubuntu:22.04 | General-purpose Linux |
Building Custom Images
When the pre-made images don’t include the dependencies you need, you can build your own image, push it to Docker Hub, and reference it inSandboxSettings.
Writing a Dockerfile
Start with a base image and add your dependencies. Here’s a complete example for a sandbox that needs specific ML libraries:requirements.txt:
image field of SandboxSettings.
Building and Pushing
OpenReward’s sandbox infrastructure runs onlinux/amd64. You must target this platform when building, even if you’re developing on an Apple Silicon Mac or another ARM machine:
--platform linux/amd64 and build on an ARM machine, the image will fail to run on OpenReward’s infrastructure.
Once built, push to Docker Hub:
Using Your Custom Image
Once pushed, reference it inSandboxSettings just like any other image:
image value — everything else in SandboxSettings works the same way.
Best Practices
Start with pre-made images: Usegeneralreasoning/python-ds:3.12-tools or generalreasoning/knowledge-worker when they cover your needs. Only build custom images when you need dependencies they don’t include.
Keep images small: Use slim base images, clean up after apt-get install with rm -rf /var/lib/apt/lists/*, and use pip install --no-cache-dir. Smaller images pull faster and your sandboxes start sooner.
Always build for linux/amd64: Use docker build --platform linux/amd64 regardless of your local machine architecture.
Pin dependency versions: Use specific versions in requirements.txt (e.g. pandas==2.2.0) rather than unpinned packages. This ensures reproducible builds.
Test locally before pushing: Run your image locally to verify it has everything you need:
Next Steps
Sandboxes
Learn more about sandbox configuration, lifecycle, and machine sizes
Building Agentic Environments
Build a complete agentic environment using sandbox Docker images
Using Toolsets
Use the knowledge-worker image with pre-built document processing toolsets

