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
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
then it works, but I would like to avoid it. Is there something I can change in your Dockerfile?