Differences between ROOT docker image interactively and in gitlab CI

I’m narrowing down some gitlab CI failures I couldn’t reproduce running interactively. What the CI is normally supposed to do is run the TMVA Classification example and then do something with the resulting xml file.

 $ mkdir -p test
 $ (cd test && root -l -b -q -n /usr/local/share/doc/root/tutorials/tmva/TMVAClassification.C\(\"MLPBNN\"\) )
Warning in <TApplication::GetOptions>: macro /usr/local/share/doc/root/tutorials/tmva/TMVAClassification.C not found

As it turns out see here the directory /usr/local/share/doc/(root) does not exist in the CI:

CI config:

before_script:
  - sudo apt-get update
  - sudo apt-get upgrade -y
  - sudo apt-get install -y tree

rootdocker-run:
  image: rootproject/root-ubuntu16
  script:
    - ls /usr/
    - ls /usr/local
    - ls /usr/local/share
    - tree /usr/local/share/doc/root

output:

$ ls /usr/local/share
ca-certificates
fonts
man
sgml
xml
$ tree /usr/local/share/doc/root
/usr/local/share/doc/root [error opening dir]

0 directories, 0 files
Job succeeded

When using the container interactively however, I see the directory:

pseyfert@openstack > docker run -it --dns=137.138.16.5 rootproject/root-ubuntu16 ls /usr/local/share/doc/root
CREDITS  LICENSE  README.ALIEN	README.GLOBUS	 README.PROOF	  ReleaseNotes	test
INSTALL  README   README.AUTH	README.MONALISA  README.SELECTOR  cfortran.doc	tutorials

Shouldn’t the contents of /usr/ be the same when using the container in the
gitlab CI and when using it interactively?

Shouldn’t the contents of /usr/ be the same when using the container in the
gitlab CI and when using it interactively?

Absolutely yes, I don’t think that can be the problem

Okay, good we agree on that :smiley:

Any idea how/where to debug further? Can you confirm that /usr/local/share/doc should exist?

Hey Paul,
I just downloaded the current rootproject/root-ubuntu16 image on my laptop.

/usr/local/share/doc does not exist, and the ROOT tutorials are under /usr/local/tutorials (found out calling gROOT->GetTutorialsDir()).

My guess is that the image you have on openstack, which still lists the old tutorials directory, is outdated…?
@amadio tweaked these images in the last weeks so he might know if this was an intended change.

My guess is that some default option changed and you were using an old version of the docker image. To get the latest version, try to do a docker pull rootproject/root-ubuntu16. If you have a specific request for build options for the docker image, let me know. I will update the build scripts soon.

hah! indeed the image on openstack was outdated (and the cron job cleaning the cache didn’t do its job).

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