diff --git a/form.yml.erb b/form.yml.erb index 4b2fe3b9dbcc71c431fca40bf6f90e0c13f2e254..a29a0c3f9341ad511c1e00a08538f9eaf9830236 100644 --- a/form.yml.erb +++ b/form.yml.erb @@ -14,12 +14,12 @@ cluster: "SLURM_CLUSTER" # Title of the app displayed in the Dashboard -title: "JupyterLab" +title: "JupyterLab Singularity" # Description of the app displayed in the Dashboard (can use multi-line string # and Markdown syntax) description: | - This app will launch a JupyterLab server on one or more cores. + This app will launch a JupyterLab server on one or more cores from a given Singularity container. # Define attribute values that aren't meant to be modified by the user within # the Dashboard form @@ -40,12 +40,9 @@ attributes: widget: text_area label: Environment Setup value: | - # The latest version of Anaconda3 with jupyter is loaded by default. - # If you would like to load other modules - # or use specific version of Anaconda please list below - # - # format: - # module load example_module/VERSION example_module2 + # load any other modules you may need here such as CUDA + # DO NOT LOAD Anaconda3 or Singularity, these are already + # taken care of # Whether Conda extensions will be available within the JupyterLab # server @@ -59,6 +56,16 @@ attributes: # @see https://docs.continuum.io/anaconda/user-guide/tasks/use-jupyter-notebook-extensions conda_extensions: "1" + # User needs to set the path to the container + container_path: + widget: text_field + label: Path to Container File + + # Any extra command line arguments to pass to `singularity exec ...` + extra_singularity_args: + widget: text_field + label: Extra Singularity arguments + # Any extra command line arguments to feed to the `jupyter-lab ...` # command that launches the JupyterLab within the batch job extra_jupyter_args: @@ -112,6 +119,8 @@ attributes: form: - custom_environment - conda_extensions + - container_path + - extra_singularity_args - extra_jupyter_args - bc_num_hours - bc_partition diff --git a/template/script.sh.erb b/template/script.sh.erb index bfae0fe56a4afafa90669e18bd3933565c0b0cb7..8d9a75514b2acd991034f08ef222023b941cc9ab 100755 --- a/template/script.sh.erb +++ b/template/script.sh.erb @@ -6,8 +6,9 @@ module reset # # Start JupyterLab Server # -module load Anaconda3 <%= context.custom_environment.gsub(/\r\n?/, "\n") %> unset XDG_RUNTIME_DIR +export SINGULARITY_BINDPATH='/data,/scratch,/local,/share' + # Launch the JupyterLab Server -jupyter-lab --config="${CONFIG_FILE}" <%= context.extra_jupyter_args %> +singularity exec <%= context.extra_singularity_args %> <%= context.container_path %> jupyter-lab --config="${CONFIG_FILE}" <%= context.extra_jupyter_args %>