BootStrap: debootstrap OSVersion: bionic 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 %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 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 \ make \ openmpi-bin \ openmpi-common \ sqlite3 \ wget apt-get clean wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh bash ~/miniconda.sh -b -p ${CONDA_ROOT} . ${CONDA_ROOT}/bin/activate conda create -q --yes -n pmsco python=${PYTHON_VERSION} conda activate pmsco conda install -q --yes -n pmsco \ pip \ "numpy>=1.13" \ scipy \ ipython \ matplotlib \ nose \ mock \ future \ statsmodels \ swig \ gitpython conda clean --all -y pip install periodictable attrdict commentjson fasteners mpi4py 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} make all nosetests -w tests/ %apprun compile . ${CONDA_ROOT}/etc/profile.d/conda.sh conda activate pmsco make all nosetests