How to run a pipeline using a Spack container

This guide explains how to run a pipeline using a pre-built ska-sdp-spack OCI image. As a concrete example, it shows how to run the CIMG pipeline inside the container. User can run any pipeline provided by ska-sdp-spack.

Prerequisites

  • Docker (or an OCI-compatible runtime such as Podman) installed on your machine.

  • Input data files accessible from your working directory:

    • A Measurement Set (MSv2)

    • A pipeline configuration file (e.g. config.yaml); example configs are available in the config directory of the CIMG repository

    • [Optional] A solutions file (.h5)

    • [Optional] A facet regions file (.reg)

Steps

  1. Set the image tag for the Spack container you want to use:

    export OCI_TAG=2026.04.5
    
  2. Pull the Spack image from the SKAO Central Artefact Repository. Currently, you can choose between an Ubuntu-based image and a RHEL-9 based image:

    # Ubuntu
    docker pull artefact.skao.int/ska-sdp-spack-ubuntu:${OCI_TAG}
    
    # RHEL-9
    docker pull artefact.skao.int/ska-sdp-spack-rhel9:${OCI_TAG}
    
  3. Change to the directory that contains your input data:

    cd /path/to/your/data
    
  4. Start an interactive shell inside the container, mounting your current directory as /work:

    docker run --rm -it \
        -v "$PWD":/work \
        -w /work \
        artefact.skao.int/ska-sdp-spack-ubuntu:${OCI_TAG} \
        /bin/bash
    

    Replace ska-sdp-spack-ubuntu with ska-sdp-spack-rhel9 if you pulled the RHEL-9 image.

    The container entrypoint automatically initialises Spack and activates the bundled environment. Your host files would be available under /work.

  5. Inside the container, run the CIMG pipeline:

    python -m ska_sdp_cimg --config-path config.yaml \
        --solutions-path field-solutions.h5 \
        --facet-regions-path facet_regions.reg \
        --output-dir output \
        --tmp-dir temp \
        --ms-path calibrated_input.ms
    

    Adjust the argument values to match your actual file names and paths.

Verification

After the pipeline finishes, check the output directory (inside your working directory on the host) for the expected data products. Refer to the CIMG pipeline documentation for details on the expected output files and logs.