Skip to main content
Every model deployed on Reactor runs as a Docker container. You build the image locally and push it to your private container registry.

Build your image

The reactor init template includes a Dockerfile optimized for Reactor. Build it from your project root:
docker build -t my-model:v1 .

Dockerfile best practices

  • Use CUDA base images matching your target GPU (e.g., nvidia/cuda:12.1.0-runtime-ubuntu22.04)
  • Install Python dependencies first to leverage Docker layer caching
  • Copy model code last so code changes don’t invalidate the dependency layer
  • Avoid including weights in the image. Upload weights separately via model weights. This keeps images small and lets you version weights independently.
  • Set the correct entrypoint. The Reactor runtime expects a specific startup command, which is preconfigured in the template Dockerfile.

Tag for your registry

Your registry URL is shown by reactor auth status. Tag your image with the full registry path:
docker tag my-model:v1 <your-registry>/my-model:v1
Each partner has a namespaced registry, so your images are isolated from other partners.

Push

First, authenticate Docker with your registry:
reactor auth docker-login
Then push:
docker push <your-registry>/my-model:v1

Troubleshooting

ErrorFix
Auth credentials missingRun reactor auth docker-login to refresh. Tokens expire every 12 hours.
Authorization token expiredRun reactor auth docker-login again.
Push is slow or timing outReduce image size with a .dockerignore. Don’t bake weights into the image.
Manifest unknownDouble-check your image tag. The registry is case-sensitive.