Docker and ubuntu aarch64 architecture installation

Hi folks,

I am trying to set up a docker container to use Orekit alongside some other libraries, I’m using an M1 processor on my machine and some of these other libraries require that I user a docker image based around a linux aarch64 architecture. I am having some issues installing Orekit in the container as the install command doesn’t find a suitable Orekit version for my system configuration (I have a fresh OS install so I don’t think it is due to library clashes being present). I know that Orekit installs/runs with aarch64 as I am running it locally on my Mac. Is it the case that I would need to compile from scratch for linux aarch64? A minimum viable example of the Dockerfile is here:

FROM --platform=linux/aarch64 ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive

RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh \
    && mkdir /root/.conda \
    && bash Miniconda3-latest-Linux-aarch64.sh -b \
    && rm -f Miniconda3-latest-Linux-aarch64.sh 

ENV PATH="/root/miniconda3/bin:${PATH}"

RUN conda install -y -c conda-forge Orekit=11.2

Thanks for the help.
/Paul

I got the install working manually using maven. Unfortunately, I was also using the python wrapper for which JCC does not support linux aarch64 so have been unable to compile the python wrapper. I guess this is maybe why there isn’t an image on conda-forge though if anyone else encounters the same issue.

Hi,

The lack of aarch64 is mainly because of the issues in building the package. JCC should work on arm but the thing is that the build stack at conda-forge uses cross compilation for building arm. JCC is built on generating wrapper code that is then compiled as a part of the JCC process and I have not managed to get this one to cross-compile for a different architecture. This is likely the reason that the mac build is struggling as well.

For arm I would until we solve this (which may take some time unfortunately) either try to build it locally on the platform, or use orekit_jpype, an experimental wrapper built on jpype instead.