Get the Container Images#

Dioptra runs as a set of Docker containers. Before you can deploy Dioptra, you need container images for the core services (REST API, MLflow tracking, NGINX) and at least one worker image (PyTorch or TensorFlow).

There are two ways to obtain these images:

Download Pre-built Images (Recommended)

Pull pre-built images from the GitHub Container Registry. This is the fastest way to get started and includes signature verification for authenticity.

Best for: Most users

Build Images Locally (Advanced)

Build container images from the source repository. Only needed if you want to customize the images or cannot access the GitHub Container Registry.

Best for: Custom modifications, restricted environments

Which Method Should I Use?#

Download pre-built images if:

  • You want to get started quickly

  • The pre-built worker environments meet your needs

Build images locally if:

  • You want to customize the container images

  • You are in a restricted environment that cannot access the GitHub Container Registry

Understanding Container Registry Prefixes#

Container images have a registry prefix that identifies where they came from. This prefix affects how you configure your Dioptra deployment.

Method

Image Name Example

Registry Prefix

Downloaded from GHCR

ghcr.io/usnistgov/dioptra/nginx:1.0.0

ghcr.io/usnistgov

Built locally

dioptra/nginx:dev

(empty)

When you prepare your deployment, you will set the container_registry template variable to match your images:

  • Downloaded images: Leave container_registry at its default value of ghcr.io/usnistgov

  • Locally built images: Set container_registry to an empty string

Note

If you need to mix downloaded images with locally built images (e.g., using downloaded images for most services but a custom-built image for a specific worker), you will need to use Docker Compose override files to specify the correct image. See Use Docker Compose Override Files for details.