BootStrap: debootstrap OSVersion: focal MirrorURL: http://ch.archive.ubuntu.com/ubuntu/ %help A singularity container for PMSCO. singularity run -e pmsco.sif path/to/pmsco -r path/to/your-runfile path/to/pmsco must point to the directory that contains the __main__.py file. #%setup # executed on the host system outside of the container before %post # # this will be inside the container # touch ${SINGULARITY_ROOTFS}/tacos.txt # this will be on the host # touch avocados.txt #%files # files are copied before %post # # this copies to root # avocados.txt # this copies to /opt # avocados.txt /opt # # this does not work # ~/.ssh/known_hosts /etc/ssh/ssh_known_hosts # ~/.ssh/id_rsa /etc/ssh/id_rsa %labels Maintainer Matthias Muntwiler Maintainer_Email matthias.muntwiler@psi.ch Python_Version 3.8 %environment export LC_ALL=C export PYTHON_VERSION=3 export CONDA_ROOT=/opt/miniconda export PLANTUML_JAR_PATH=/opt/plantuml/plantuml.jar export SINGULAR_BRANCH="singular" %post export LC_ALL=C export PYTHON_VERSION=3.8 export CONDA_ROOT=/opt/miniconda export PLANTUML_ROOT=/opt/plantuml sed -i 's/$/ universe/' /etc/apt/sources.list apt-get update apt-get -y install \ binutils \ build-essential \ default-jre \ doxygen \ f2c \ g++ \ gcc \ gfortran \ git \ graphviz \ libblas-dev \ liblapack-dev \ libopenmpi-dev \ nano \ openmpi-bin \ openmpi-common \ sqlite3 \ wget apt-get clean wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh -O ~/miniforge3.sh bash ~/miniforge3.sh -b -p ${CONDA_ROOT} . ${CONDA_ROOT}/etc/profile.d/conda.sh conda activate base conda create -q --yes -n pmsco python=${PYTHON_VERSION} conda install -q --yes -n pmsco -c conda-forge \ commentjson \ fasteners \ future \ gitpython ipython \ ipykernel \ jsonschema \ h5py \ matplotlib \ meson \ mock \ pynose \ "numpy>=1.13" \ pandas \ periodictable \ pip \ scikit-learn \ scipy \ seaborn \ sqlalchemy \ statsmodels \ swig conda clean --all -y ${CONDA_ROOT}/envs/pmsco/bin/pip install meson-python mpi4py netgraph networkx doxypypy mkdir ${PLANTUML_ROOT} wget -O ${PLANTUML_ROOT}/plantuml.jar https://sourceforge.net/projects/plantuml/files/plantuml.jar/download #%test # test the image after build %runscript . ${CONDA_ROOT}/etc/profile.d/conda.sh conda activate pmsco exec python "$@" %apprun install . ${CONDA_ROOT}/etc/profile.d/conda.sh conda activate pmsco cd ~ git clone https://git.psi.ch/pearl/pmsco.git pmsco cd pmsco git checkout master git checkout -b ${SINGULAR_BRANCH} meson setup build cd build meson compile meson install meson test %apprun compile . ${CONDA_ROOT}/etc/profile.d/conda.sh conda activate pmsco cd build meson compile meson install meson test