Docker file and instructions for setting up ISIS on your Mac

Hi everyone, sharing a simple way I was able to set up ISIS on my mac.

I used a docker file (see below) that I got from a coworker who originally downloaded it from the NEOGeography StereoPipeline Toolkit public github page (although doesn’t look like the docker file still exists there).

You can install the docker file using:
docker build - < asp_isis_320.dockerfile -t asp_isis_320

Then, start up docker using the app on your computer, and run using:
docker run -v $(pwd):/YourDataDir -it ContainerID

Now, you’ll be able to go back to your directory with examples using: cd /YourDataDir

Next, set the data and base paths to the data/kernels you downloaded from ISIS, for example:

export ISIS3DATA=“/YourDataDir/data” (or wherever your data is)
export ISIS3BASE=“/YourDataDir/data/base”

And, now you can run ISIS commands such as (examples for LROC):
lronac2isis from=M101013931RE.IMG to=M101013931RE.cub
spiceinit web=true from=M10103931RE.cub
campt from=M10103931RE.cub LINE=26112 SAMPLE=1266

Hope this is helpful! :slight_smile:

contents of asp_isis_320.dockerfile (since I couldn’t attach a .txt file)

vim: ft=dockerfile:

FROM usgsastro/miniconda3

RUN conda update conda && \

conda install python=3.6 && \

conda config --add channels conda-forge && \
conda config --add channels usgs-astrogeology

RUN conda install -c usgs-astrogeology isis=7.1.0
RUN conda install -c conda-forge rclone

RUN apt-get update &&
apt-get install libgl1 -y &&
rm -rf /var/lib/apt/lists/*

RUN bash -lc ‘python “$CONDA_PREFIX/scripts/isisVarInit.py”’

RUN ln -s /opt/conda/testData /home/working

ENV asp_version=3.2.0
ENV stereo_pipeline=StereoPipeline-3.2.0-2023-01-01-x86_64-Linux

RUN wget https://github.com/NeoGeographyToolkit/StereoPipeline/releases/download/${asp_version}/${stereo_pipeline}.tar.bz2 -O /opt/${stereo_pipeline}.tar.bz2
#RUN wget https://github.com/NeoGeographyToolkit/StereoPipeline/releases/${asp_version}/${stereo_pipeline}.tar.bz2 -O /opt/${stereo_pipeline}.tar.bz2
RUN bzip2 -d /opt/${stereo_pipeline}.tar.bz2
RUN tar -xf /opt/${stereo_pipeline}.tar -C /opt && rm /opt/${stereo_pipeline}.tar
ENV PATH “$PATH:/opt/${stereo_pipeline}/bin”
ENV ISISROOT “/opt/conda”
ENV ISISDATA “/opt/conda/data”

RUN [“apt-get”, “–allow-releaseinfo-change”, “update”]
RUN [“apt-get”, “-y”, “install”, “vim”]

WORKDIR “/home/working”

2 Likes

Hi @emmyrd , welcome to the openplanetary forum!
Thanks for sharing!

You bet it is! :star2:

1 Like

@emmyrd thank you!

Do you know if this works with podman? too?

PS: can you wrap your code in codeblocks for better readability? something like Select the programming language used in code blocks - documentation / users - Discourse Meta

Best

Same as above, just better formatting :slight_smile:


vim: ft=dockerfile:
FROM usgsastro/miniconda3

RUN conda update conda && \

conda install python=3.6 && \
conda config --add channels conda-forge && \
conda config --add channels usgs-astrogeology
RUN conda install -c usgs-astrogeology isis=7.1.0
RUN conda install -c conda-forge rclone

RUN apt-get update &&
apt-get install libgl1 -y &&
rm -rf /var/lib/apt/lists/*

RUN bash -lc ‘python “$CONDA_PREFIX/scripts/isisVarInit.py”’

RUN ln -s /opt/conda/testData /home/working

ENV asp_version=3.2.0
ENV stereo_pipeline=StereoPipeline-3.2.0-2023-01-01-x86_64-Linux

RUN wget https://github.com/NeoGeographyToolkit/StereoPipeline/releases/download/${asp_version}/${stereo_pipeline}.tar.bz2 -O /opt/${stereo_pipeline}.tar.bz2
#RUN wget https://github.com/NeoGeographyToolkit/StereoPipeline/releases/${asp_version}/${stereo_pipeline}.tar.bz2 -O /opt/${stereo_pipeline}.tar.bz2
RUN bzip2 -d /opt/${stereo_pipeline}.tar.bz2
RUN tar -xf /opt/${stereo_pipeline}.tar -C /opt && rm /opt/${stereo_pipeline}.tar
ENV PATH “$PATH:/opt/${stereo_pipeline}/bin”
ENV ISISROOT “/opt/conda”
ENV ISISDATA “/opt/conda/data”

RUN [“apt-get”, “–allow-releaseinfo-change”, “update”]
RUN [“apt-get”, “-y”, “install”, “vim”]

WORKDIR “/home/working”

1 Like

Hi mariodamore, I’m not sure about podman, that’s my first time hearing about it!

@emmyrd no problem, I’ll test it at some point.

Thanks for the formatted code, I really appreciate the vim modeline on the top too :+1: