neurodocker
neurodocker copied to clipboard
discuss: container maker
nvidia has been working on this:
https://devblogs.nvidia.com/making-containers-easier-with-hpc-container-maker/ repo: https://github.com/NVIDIA/hpc-container-maker
we may try to see how similar or different this is relative to neurodocker
cc: @yarikoptic
@satra - thanks for sharing this.
my initial observations:
- hpccm generates dockerfiles and singularity recipes (like neurodocker)
- hpccm seems to focus on compiled software, cuda, mpi.
- hpccm is lower-level than neurodocker. users must create a python script to generate container specs. this python script is used when calling hpccm on the command-line.
- the components of hpccm are all coded in python (). neurodocker is using string templates now with the idea that it makes it easier to contribute to and maintain.
- hpccm cleverly overloads the
__iadd__
operator to simplify stringing together container commands.Stage0.baseimage('ubuntu:16.04') Stage0 += apt_get(ospackages=['gcc', 'g++', 'gfortran'])
hpccm seem to do exactly the same thing (generate dockerfiles and singularity recipes) but differ in their expectations from the user. neurodocker attempts to make things as easy as possible for the user, whereas hpccm seems geared towards users with scripting knowledge. a command-line interface might come out for hpccm, making it more accessible to users.
it is possible we could use hpccm as a code base and create hpccm-compatible recipes for neuroimaging software. those could be accessible via a command-line interface.
I'm closing the discussion for now, please reopen if it is still relevant