Bootstrap: docker
From: python:3.8-slim

%labels
    Author ATGC
    Tool DExTER

%post
    set -e
    export DEBIAN_FRONTEND=noninteractive

    apt-get update
    apt-get install -y --no-install-recommends \
        git \
        graphviz \
        build-essential \
        ca-certificates \
        curl

    CONDA_INSTALLER=Miniconda3-py38_23.10.0-1-Linux-x86_64.sh
    curl -fsSL -o "/tmp/${CONDA_INSTALLER}" "https://repo.anaconda.com/miniconda/${CONDA_INSTALLER}"
    bash "/tmp/${CONDA_INSTALLER}" -b -p /opt/conda
    rm "/tmp/${CONDA_INSTALLER}"

    /opt/conda/bin/conda clean -afy
    /opt/conda/bin/conda create -y -p /opt/conda/envs/dexter python=3.8.8 pip
    /opt/conda/bin/conda install -y -p /opt/conda/envs/dexter \
        numpy=1.18.1 \
        pandas=1.0.0 \
        scikit-learn=0.22.1 \
        tqdm=4.42.0 \
        matplotlib=3.1.2 \
        bitarray=1.2.1
    SITE_PACKAGES=$(/opt/conda/envs/dexter/bin/python - <<'PY'
import sysconfig
print(sysconfig.get_paths()["purelib"])
PY
)
    cat > "${SITE_PACKAGES}/sitecustomize.py" <<'PY'
import pandas as _pd

if not hasattr(_pd.Series, "as_matrix"):
    _pd.Series.as_matrix = _pd.Series.to_numpy

if not hasattr(_pd.DataFrame, "as_matrix"):
    _pd.DataFrame.as_matrix = _pd.DataFrame.to_numpy
PY
    /opt/conda/bin/conda clean -afy

    mkdir -p /opt
    cd /opt
    git clone --depth 1 https://gite.lirmm.fr/menichelli/dexter.git
    cd dexter
    git checkout 33b87ea6fb2a54cc8e178b0370add137d6eee4fa

    apt-get clean
    rm -rf /var/lib/apt/lists/*

%environment
    export DEXTER_HOME=/opt/dexter
    export PATH=/opt/conda/envs/dexter/bin:/opt/conda/bin:$PATH
    export PYTHONPATH=/opt/dexter:${PYTHONPATH}
    export PYTHONUNBUFFERED=1
    export MPLCONFIGDIR=/tmp

%runscript
    exec /opt/conda/envs/dexter/bin/python /opt/dexter/Main.py "$@"
