Hello folks,
I would like to find out how Easybuild and Singularity are going to work
together. I am trying to design an eb environment in Singularity as a container
solution to host all of the eb apps in a prod environment. Is there anyone in
the HPC community that is working on this?
Currently, I have setup a container environment that can build packages in
container and also install RPMs from easybuild via Artifactory that is done
through the bootstrap process.
One of things that puzzles me is how to setup an isolated container environment
that runs /etc/profile for container. I've noticed I need to do this inorder to
get module command to work in container. Currently, I have to do this manually
after shelling in.
-bash-4.2$ singularity shell /nfs/grid/software/testing.img
Singularity: Invoking an interactive shell within container...
Singularity.testing.img> module --version
sh: module: command not found
Singularity.testing.img> env | grep MODULEPATH
MODULEPATH_ROOT=/usr/share/modulefiles
MODULEPATH=/modulefiles/Core/:/nfs/grid/software/RHEL7-BUILD/easybuild/modules/all/:/nfs/grid/software/RHEL7/non-easybuild/modules/all/:/nfs/grid/software/RHEL7/easybuild/modules/all/Core:/nfs/grid/software/moduledomains:/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core
Singularity.testing.img> unset MODULEPATH
Singularity.testing.img> . /etc/profile
Singularity.testing.img> . /nfs/grid/software/
module-setup.sh RHEL7/ RHEL7-BUILD/
Singularity.testing.img> . /nfs/grid/software/module-setup.sh
Singularity.testing.img> ml av
-----------------------------------------------------------
/usr/share/lmod/lmod/modulefiles/Core
------------------------------------------------------------
lmod/6.5.1 settarg/6.5.1
----------------------------------------------------
/nfs/grid/software/RHEL7-BUILD/easybuild/modules/all
----------------------------------------------------
EasyBuild/3.1.2
----------------------------------------------------
/nfs/grid/software/RHEL7/easybuild/modules/all/Core
-----------------------------------------------------
Advisor/2017_update1 IGV/2.3.80-Java-1.8.0_92 Java/1.8.0_92
gaussian/16-AVX iompi/2017.01 tbb/2017.2.132
GCC/5.4.0-2.27 Inspector/2017_update1
VTune/2017_update1 gaussian/16-SSE2 (D) ipp/2017.1.132
GCC/6.2.0-2.27 (D) IntelClusterChecker/2017.1.016
daal/2017.1.132 intel/2017.01 itac/2017.1.024
Where:
D: Default Module
Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching
any of the "keys".
Singularity.testing.img> ml EasyBuild
Singularity.testing.img> eb --version
This is EasyBuild 3.1.2 (framework: 3.1.2, easyblocks: 3.1.2) on host
amrndhl1157.pfizer.com.
Singularity.testing.img> eb --show-config
#
# Current EasyBuild configuration
# (C: command line argument, D: default value, E: environment variable, F:
configuration file)
#
buildpath (D) = /home/siddis14/.local/easybuild/build
installpath (D) = /home/siddis14/.local/easybuild
repositorypath (D) = /home/siddis14/.local/easybuild/ebfiles_repo
robot-paths (D) =
/nfs/grid/software/RHEL7-BUILD/easybuild/software/EasyBuild/3.1.2/lib/python2.7/site-packages/easybuild_easyconfigs-3.1.2-py2.7.egg/easybuild/easyconfigs
sourcepath (D) = /home/siddis14/.local/easybuild/sources
Singularity.testing.img> eb zlib-1.2.8.eb
== temporary log file in case of crash /tmp/eb-BfnLvm/easybuild-ybJc4_.log
== zlib/1.2.8 is already installed (module found), skipping
== No easyconfigs left to be built.
== Build succeeded for 0 out of 0
== Temporary log file(s) /tmp/eb-BfnLvm/easybuild-ybJc4_.log* have been removed.
== Temporary directory /tmp/eb-BfnLvm has been removed.
Singularity.testing.img> eb zlib-1.2.8.eb --rebuild
== temporary log file in case of crash /tmp/eb-IMN3vl/easybuild-lWCjI1.log
== processing EasyBuild easyconfig
/nfs/grid/software/RHEL7-BUILD/easybuild/software/EasyBuild/3.1.2/lib/python2.7/site-packages/easybuild_easyconfigs-3.1.2-py2.7.egg/easybuild/easyconfigs/z/zlib/zlib-1.2.8.eb
== building and installing zlib/1.2.8...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== postprocessing...
== sanity checking...
== cleaning up...
== creating module...
== permissions...
== packaging...
== COMPLETED: Installation ended successfully
== Results of the build can be found in the log file(s)
/home/siddis14/.local/easybuild/software/zlib/1.2.8/easybuild/easybuild-zlib-1.2.8-20170504.163248.log
== Build succeeded for 1 out of 1
== Temporary log file(s) /tmp/eb-IMN3vl/easybuild-lWCjI1.log* have been removed.
== Temporary directory /tmp/eb-IMN3vl has been removed.
Singularity.testing.img> module use $HOME/.local/easybuild/modules/all
Due to MODULEPATH changes the following have been reloaded:
1) EasyBuild/3.1.2
Singularity.testing.img> module av
--------------------------------------------------------
/home/siddis14/.local/easybuild/modules/all
---------------------------------------------------------
EasyBuild/3.1.2 (L,D) M4/1.4.17 (D) zlib/1.2.8 (D)
-----------------------------------------------------------
/usr/share/lmod/lmod/modulefiles/Core
------------------------------------------------------------
lmod/6.5.1 settarg/6.5.1
----------------------------------------------------
/nfs/grid/software/RHEL7-BUILD/easybuild/modules/all
----------------------------------------------------
EasyBuild/3.1.2
----------------------------------------------------
/nfs/grid/software/RHEL7/easybuild/modules/all/Core
-----------------------------------------------------
Advisor/2017_update1 IGV/2.3.80-Java-1.8.0_92 Java/1.8.0_92
gaussian/16-AVX iompi/2017.01 tbb/2017.2.132
GCC/5.4.0-2.27 Inspector/2017_update1
VTune/2017_update1 gaussian/16-SSE2 (D) ipp/2017.1.132
GCC/6.2.0-2.27 (D) IntelClusterChecker/2017.1.016
daal/2017.1.132 intel/2017.01 itac/2017.1.024
Where:
L: Module is loaded
D: Default Module
Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching
any of the "keys".
Shahzeb Siddiqui
HPC Linux Engineer
B2220-447.2
Groton, CT