Home | News | Documentation | Download

Dockerfile for rootproject/root-ubuntu16


#1

Hello, where can I find the Dockerfile for rootproject/root-ubuntu16 ?


#2

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/*

#3

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?


#4

We have a separate job in Jenkins that executes it. That’s why I also provided something you can use with docker build standalone.


#5

thank you. Do you know why if inside the image, after the installation, I do python import ROOT it doesn’t work?


#6

found it, I had to add

ENV PYTHONPATH /usr/local/lib

as in https://github.com/root-project/rootspi/blob/master/docker/ubuntu16/Dockerfile


#7

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?


#8

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.