root-project / root-docker

Docker recipes for ROOT
30 stars 33 forks source link

Consider adding XrootD + Kerberos to ROOT docker base images (possible solution: build image on top of cern/slc6-base or cern/cc7-base) #1

Closed lukasheinrich closed 5 years ago

lukasheinrich commented 5 years ago

The ROOT docker images are very helpful when configuring continuous integration pipelines for analyses that do not depend on experiment software but just on ROOT (e.g. HistFitter, etc) and thus complements experiment release images nicely.

In order to allow for streaming I/O it would be nice if some flavor of the images supported XrootD/Kerberos authentication in order to open e.g. files via TFile::Open("root://...)

The official CERN base images support Kerberos out of the box, so if there was a flavor of the image which would be built on cern/cc7-base this would probably already be automatically solved without much of a maintainance burden for the ROOT team, so the only thing that would need to be added is xrootd.

It might be sufficient to just add

RUN yum install xrootd-client

or if it needs to be built by source for some reason something like this might work

RUN git clone --depth 1 https://github.com/xrootd/xrootd.git -b stable-4.2.x  && \
    cd xrootd && \
    mkdir xrootd-build && \
    cd xrootd-build && \
    cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_PERL=FALSE -DENABLE_FUSE=FALSE && \
    make && make install && \
    cd / && rm -rf xrootd
cburgard commented 5 years ago

I fully support this :-)

lukasheinrich commented 5 years ago

@amadio can you take a look if you have time? Thanks.

amadio commented 5 years ago

@lukasheinrich Thanks for the mention, I did not notice this before, as we usually track issues in JIRA (leaving issues enabled here was unintended).

In any case, I will create an image based on CC7 and add xrootd to it.

lukasheinrich commented 5 years ago

Thanks @amadio.

I wanted to add that for a single flavor, the Dockerfiles could in principle be parametrized via

ARG baseimage=centos
FROM $baseimage

which can then by changed via docker build -t sometag --build-arg baseimage=cern/cc7 which would reduce the number of Dockerfiles to maintain to those that have different package managers

amadio commented 5 years ago

Merged #2. Closing.