122 lines
2.8 KiB
Plaintext
122 lines
2.8 KiB
Plaintext
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
|