This example is available on GitHub: examples/02_remote_agent_server/05_convo_with_apptainer_sandboxed_server.py
When to Use Apptainer
Use Apptainer instead of Docker when:- Running on HPC clusters or shared computing environments
- Root access is not available
- Docker daemon cannot be installed
- Working in academic or research computing environments
- Security policies restrict Docker usage
Prerequisites
Before running this example, ensure you have:- Apptainer installed (Installation Guide)
- LLM API key set in environment
Basic Apptainer Sandbox Example
This example shows how to create an ApptainerWorkspace that automatically manages Apptainer containers for agent execution:examples/02_remote_agent_server/05_convo_with_apptainer_sandboxed_server.py
Running the Example
Configuration Options
TheApptainerWorkspace supports several configuration options:
Option 1: Pre-built Image (Recommended)
Use a pre-built agent server image for fastest startup:Option 2: Build from Base Image
Build from a base image when you need custom dependencies:Building from a base image requires internet access and may take several minutes on first run. The built image is cached for subsequent runs.
Option 3: Use Existing SIF File
If you have a pre-built Apptainer SIF file:Key Features
Rootless Container Execution
Apptainer runs completely without root privileges:- No daemon process required
- User namespace isolation
- Compatible with most HPC security policies
Image Caching
Apptainer automatically caches container images:- First run builds/pulls the image
- Subsequent runs reuse cached SIF files
- Cache location:
~/.cache/apptainer/
Port Mapping
The workspace exposes ports for agent services:Differences from Docker
While the API is similar to DockerWorkspace, there are some differences:| Feature | Docker | Apptainer |
|---|---|---|
| Root access required | Yes (daemon) | No |
| Installation | Requires Docker Engine | Single binary |
| Image format | OCI/Docker | SIF |
| Build speed | Fast (layers) | Slower (monolithic) |
| HPC compatibility | Limited | Excellent |
| Networking | Bridge/overlay | Host networking |
Troubleshooting
Apptainer Not Found
If you seeapptainer: command not found:
- Install Apptainer following the official guide
- Ensure it’s in your PATH:
which apptainer
Permission Errors
Apptainer should work without root. If you see permission errors:- Check that your user has access to
/tmp - Verify Apptainer is properly installed:
apptainer version - Ensure the cache directory is writable:
ls -la ~/.cache/apptainer/
Build Failures
If image building fails:- Ensure you have internet access
- Check available disk space (builds require several GB)
- Try pulling a pre-built image instead
Next Steps
- Docker Sandbox - Alternative container runtime
- API Sandbox - Remote API-based sandboxing
- Local Server - Non-sandboxed local execution

