Hello, where can I find the Dockerfile for rootproject/root-ubuntu16 ?
At the moment the files are here: https://github.com/root-project/rootspi/tree/master/docker. The image is built in two stages, one with the dependencies, and another with ROOT itself. I am thinking about moving them into a separate repository when I create similar files for other Linux distributions. If you want a self-contained file, you can start with the one below. Cheers,
FROM ubuntu
RUN apt-get update -qq \
&& apt-get -y install \
ccache \
cmake \
dcap-dev \
g++ \
gcc \
gfal2 \
gfortran \
git \
graphviz-dev\
libafterimage-dev \
libavahi-compat-libdnssd-dev \
libcfitsio-dev \
libfftw3-dev \
libftgl-dev \
libgfal2-dev \
libgif-dev \
libgl2ps-dev \
libglew-dev \
libgsl0-dev \
libjemalloc-dev \
libjpeg-dev \
libkrb5-dev \
libldap2-dev \
libmysqlclient-dev \
liboce-ocaf-dev \
liboce-visualization-dev \
libodbc1 \
libpcre++-dev \
libpq-dev \
libpythia8-dev \
libqt4-dev \
libsqlite3-dev \
libtbb-dev \
libtiff-dev \
libx11-dev \
libxext-dev \
libxft-dev \
libxml2-dev \
libxml2-dev\
libxpm-dev \
locales \
lsb-release \
make \
python \
python-dev \
python-numpy-dev \
r-base \
srm-ifce-dev \
sudo \
&& apt-get clean \
&& apt-get autoclean \
&& Rscript -e 'install.packages("Rcpp", repos="https://cran.r-project.org")' \
&& Rscript -e 'install.packages("RInside", repos="https://cran.r-project.org")' \
&& rm -rf /var/lib/apt/lists/*
RUN localedef -i en_US -f UTF-8 en_US.UTF-8
RUN git clone https://github.com/root-project/root /usr/src/root \
&& cd /tmp \
&& cmake /usr/src/root \
-Dall=ON \
-Dbonjour=ON \
-Dbuiltin_afterimage=OFF \
-Dbuiltin_davix=ON \
-Dbuiltin_ftgl=OFF \
-Dbuiltin_gl2ps=OFF \
-Dbuiltin_glew=OFF \
-Dbuiltin_unuran=OFF \
-Dbuiltin_xrootd=ON \
-Dcastor=OFF \
-Dcxx14=ON \
-Ddcache=ON \
-Dfail-on-missing=ON \
-Dfortran=ON \
-Dgeocad=ON \
-Dgviz=ON \
-Djemalloc=ON \
-Dkrb5=ON \
-Dldap=ON \
-Doracle=OFF \
-Dpythia6=OFF \
-Droot7=ON \
-Drpath=ON \
-Dvc=OFF \
-Dvdt=OFF \
-Dveccore=OFF \
&& cmake --build . -- -j$(nproc) \
&& cmake --build . --target install \
&& rm -rf /usr/src/root /tmp/*
Thank you. Here
I am not sure to understand when the building is done. You copy the build.sh
but don’t you execute it?
We have a separate job in Jenkins that executes it. That’s why I also provided something you can use with docker build
standalone.
thank you. Do you know why if inside the image, after the installation, I do python import ROOT it doesn’t work?
found it, I had to add
ENV PYTHONPATH /usr/local/lib
as in https://github.com/root-project/rootspi/blob/master/docker/ubuntu16/Dockerfile
additional problem. ROOT works inside the image, but not with python (2 or 3)
>>> import ROOT
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/ROOT.py", line 24, in <module>
import cppyy
File "/usr/local/lib/cppyy.py", line 60, in <module>
import libPyROOT as _backend
ImportError: libTree.so: cannot open shared object file: No such file or directory
PYTHONPATH is set to /usr/local/lib where I have ROOT.py. libTree.so is in the same directory
If I do
LD_LIBRARY_PATH=/usr/local/lib/
then it works, but I would like to avoid it. Is there something I can change in your Dockerfile?
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.