Forked from
Corryvreckan / Corryvreckan
886 commits behind the upstream repository.
-
Simon Spannagel authoredSimon Spannagel authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Dockerfile.deps 3.70 KiB
FROM ubuntu:latest
MAINTAINER Simon Spannagel <simon.spannagel@cern.ch>
SHELL ["/bin/bash", "-c"]
# Install basic build requirements
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y tzdata curl cmake g++ gcc binutils git clang-format-12 clang-tidy-12
# Install ROOT dependencies
RUN apt-get update && apt-get install -y dpkg-dev libx11-dev libxpm-dev libxft-dev libxext-dev libssl-dev python3 python3-dev python3-pip python3-tk python-is-python3
# Install helpful Python packages
RUN pip3 install --upgrade pip && \
pip3 install numpy matplotlib scipy pandas codespell cmakelang
# Add layer for ROOT6
ENV ROOT6_VERSION 6.26.04
ENV ROOTSYS="/opt/root6"
ENV PATH="$ROOTSYS/bin:$PATH"
ENV LD_LIBRARY_PATH="$ROOTSYS/lib:$LD_LIBRARY_PATH"
ENV LIBPATH="$ROOTSYS/lib:$LIBPATH"
ENV PYTHONPATH="$ROOTSYS/lib:$PYTHONPATH"
ENV CMAKE_PREFIX_PATH="$ROOTSYS:$CMAKE_PREFIX_PATH"
RUN mkdir -p ${ROOTSYS}/{src,build} && \
curl -o ${ROOTSYS}/root.${ROOT6_VERSION}.tar.gz \
https://root.cern.ch/download/root_v${ROOT6_VERSION}.source.tar.gz && \
tar zxf ${ROOTSYS}/root.${ROOT6_VERSION}.tar.gz -C ${ROOTSYS}/src && \
rm -f ${ROOTSYS}/root.${ROOT6_VERSION}.tar.gz && \
cd ${ROOTSYS}/build && \
cmake -Dgdml=ON \
-Dgenvector=ON \
-Dmathmore=ON \
-Dminuit2=ON \
-Dthread=ON \
-Dx11=OFF \
-Dopengl=OFF \
-Dtmva=OFF -Dtmva-cpu=OFF -Dtmva-pymva=OFF \
-Dhttp=OFF \
-Dwebgui=OFF \
-Droot7=OFF \
-Dfftw3=OFF \
-Dfitsio=OFF \
-Dclad=OFF \
-Dspectrum=OFF \
-Dvdt=OFF \
-Dxrootd=OFF \
-Droofit=OFF \
-Ddataframe=OFF \
-Dpython3=ON \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DCMAKE_INSTALL_PREFIX=../ \
-DCMAKE_CXX_STANDARD=17 \
../src/root-${ROOT6_VERSION} && \
make -j`grep -c processor /proc/cpuinfo` && \
make install && \
rm -rf ${ROOTSYS}/{src,build}
# Install Peary dependencies
RUN apt-get update && apt-get install -y unzip libreadline-dev
ENV PEARY_VERSION v0.11.0
# Add layer for Caribou Peary
ENV PEARYPATH="/opt/peary"
RUN mkdir -p ${PEARYPATH}/{src,build} && \
curl -L -o ${PEARYPATH}/peary-${PEARY_VERSION}.zip \
https://gitlab.cern.ch/Caribou/peary/-/archive/${PEARY_VERSION}/peary-${PEARY_VERSION}.zip && \
unzip ${PEARYPATH}/peary-${PEARY_VERSION}.zip -d ${PEARYPATH}/src && \
rm -f ${PEARYPATH}/peary-${PEARY_VERSION}.zip && \
cd ${PEARYPATH}/build && \
cmake -DINTERFACE_EMULATION=ON \
-DINSTALL_PREFIX=../ \
../src/peary-${PEARY_VERSION} && \
make -j`grep -c processor /proc/cpuinfo` && \
make install && \
rm -rf ${PEARYPATH}/{src,build}
ENV EUDAQ2_VERSION 2.5.2
# Add layer for EUDAQ2
ENV EUDAQ2PATH="/opt/eudaq2"
ENV Peary_DIR="${PEARYPATH}/share/cmake/Modules/"
RUN mkdir -p ${EUDAQ2PATH}/{src,build} && \
curl -L -o ${EUDAQ2PATH}/eudaq2.${EUDAQ2_VERSION}.zip \
https://github.com/eudaq/eudaq/archive/v${EUDAQ2_VERSION}.zip && \
unzip ${EUDAQ2PATH}/eudaq2.${EUDAQ2_VERSION}.zip -d ${EUDAQ2PATH}/src && \
rm -f ${EUDAQ2PATH}/eudaq2.${EUDAQ2_VERSION}.zip && \
cd ${EUDAQ2PATH}/build && \
cmake -DEUDAQ_BUILD_EXECUTABLE=OFF \
-DEUDAQ_BUILD_GUI=OFF \
-DUSER_CARIBOU_BUILD=ON \
-DUSER_EUDET_BUILD=ON \
-DUSER_TLU_BUILD=ON \
-DEUDAQ_INSTALL_PREFIX=../ \
../src/eudaq-${EUDAQ2_VERSION} && \
make -j`grep -c processor /proc/cpuinfo` && \
make install && \
rm -rf ${EUDAQ2PATH}/{src,build}
# Install Corryvreckan dependencies
RUN apt-get install -y libeigen3-dev python3-lxml libhdf5-dev
CMD ["bash"]