CSCfi / hpc-container-wrapper

Tool to wrap installations into a container designed for use on HPC systems
MIT License
27 stars 8 forks source link

generate_wrappers.sh has hardcoded singularity path #19

Closed pekkahintsanen closed 1 year ago

pekkahintsanen commented 1 year ago

generate_wrappers has /usr/bin/singularity

could it be just "singularity"?

I have installed singularity as module.

Nortamo commented 1 year ago

Hi, Yes that could be fixed, there is a PR for that in #17. I'm going to have a look at that that there are not unexpected issues w.r.t infinite loops or similar.

Could you say how dynamic it would need to be?

pekkahintsanen commented 1 year ago

Hi, thx for commenting.

I think fully dynamic might be ideal. However, for my use case the 1st option would probably be enough.

Nortamo commented 1 year ago

Hi, This has now been fixed by #20. I just merged that so master and tag v0.3.2 now contains the fixes. Let me know if it does not work as expected. Ran trough basics test on our systems, and seemed to be ok.

There is now an extra option in the global config. singularity_executable_path You can set this to whatever valid path or command name which will be used for invoking singularity / apptainer during build and startup: singularity_executable_path: '/usr/bin/singularity' -> same as old behavior singularity_executable_path: '/my/custom/path/to/singularity' singularity_executable_path: 'singularity' we will pull just whatever is in $PATH at the time, the wrappers will also select singularity just from $PATH singularity_executable_path: '$MY_CUSTOM_SINGULARITY' -> evaluated at runtime so the content of the variable would be hardcoded to the generated wrappers.

We do some basic sanity checks for the set value, and error and exit early if we notice:

  1. The command does not exist
  2. The command does not look like a valid apptainer/singularity command -> e.g <command> --help does not contain exec/shell/pull.