138 lines
3.2 KiB
Plaintext
138 lines
3.2 KiB
Plaintext
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
|