Radio astronomy needs a lot of software: CASA, WSClean, DP3, LOFAR tools, custom scripts—and installing all of them cleanly on every machine is painful.
Containers let you ship a complete, working environment that runs the same on your laptop, workstation, and HPC.
Below is a short, practical workflow using Podman and the astronrd/linc image, and then an example of building your own image like peijin/lwa-solar-pipehost.
Install Podman
https://podman.io/docs/installation
MacOS, (need brew https://brew.sh/)
brew install podman Windows, need WSL (follow instructions here:https://learn.microsoft.com/en-us/windows/wsl/install) then inside WSL is a ubuntu.
Or linux
# Debian/Ubuntu sudo apt-get update sudo apt-get install -y podman # Fedora sudo dnf install -y podman Pull and run image
The astronrd/linc image (from ASTRON) is a great “batteries included” environment for radio interferometric calibration and imaging.
podman pull docker.io/astronrd/linc Then try to start an interactive shell inside the container:
podman run --rm -it \ -v /your/data/path:/data \ docker.io/astronrd/linc \ /bin/bash Explanation:
--rm – delete the container when you exit
-it – interactive terminal
-v /your/data/path:/data – mount your local data directory into /data inside the container
docker.io/astronrd/linc – the image to run
/bin/bash – start a bash shell inside
Now you’re inside a fully configured environment with tools like DP3 and WSClean available, without installing them on your host system.
Try WSClean and DP3 inside astronrd/linc
Once inside the container shell, you can test the tools:
wsclean --version DP3 --help Then exit to escape the shell.
(optional) Build your own Docker/Podman image
Although there are so many plug-and-play-ready prebuilt container images, sometimes when a more customized package is needed, it's more convenient to create an image.
Features:
Pin exact versions (WSClean v3.x, DP3 commit XYZ, CASA version, etc.)
Add your own pipelines/scripts
Pre-configure environment variables, paths, and helper tools
The following is a minimal example of how you might build an image like peijin/lwa-solar-pipehost for an OVRO-LWA–style pipeline host.
Step 1: create Dockerfile
Create a file called Dockerfile:
# Start from a base astronomy image (or just Ubuntu) FROM docker.io/astronrd/linc:latest # or: FROM ubuntu:22.04 # Set a working directory WORKDIR /opt/pipeline # Install extra system packages (example) RUN apt-get update && apt-get install -y --no-install-recommends \ git \ python3 \ python3-pip \ && rm -rf /var/lib/apt/lists/* # Copy your pipeline scripts into the image COPY pipeline/ /opt/pipeline/ # Install Python dependencies RUN pip3 install --no-cache-dir -r requirements.txt # Set environment variables (example) ENV PYTHONUNBUFFERED=1 \ OMP_NUM_THREADS=8 # Default entrypoint (can be a shell, or a pipeline script) ENTRYPOINT ["/bin/bash"] Of course, you can do other optimizations to include more packages.
Step 2: Build the image
From the directory with your Dockerfile:
podman build -t peijin/lwa-solar-pipehost:latest . Step 3: Run container with the image
podman run --rm -it \ -v /your/data/path:/data \ peijin/lwa-solar-pipehost:latest \ /bin/bash Inside, your pipeline code is already in /opt/pipeline.
Top comments (0)