особенность запустить и выполнить команду - PullRequest
0 голосов
/ 26 июня 2018

Я знаю, как запустить сингулярность:

singularity run /mn/sarpanitu/singularity/test/fenics-and-more.img

Есть ли способ сделать одну строку (или более) для запуска предыдущей команды, а затем в единственном числе запустить echo "hi there"? (Конечно, я буду использовать что-то более сложное, чем привет в производстве). Как только это будет сделано, я хочу, чтобы моя сингулярность оставалась здоровой для интерактивного использования.

Так что-то вроде намерения:

singularity run /mn/sarpanitu/singularity/test/fenics-and-more.img -bash-command echo "hi there"

или

singularity run /mn/sarpanitu/singularity/test/fenics-and-more.img -run-script-at-startup script.sh

Ответы [ 2 ]

0 голосов
/ 21 августа 2018

Это очень связано со следующим вопросом: bash скрипт для выполнения действия в контейнере сингулярности, который он открывает . Решение опубликовано там, в основном с использованием опции -c и порождением консоли bash.

0 голосов
/ 20 июля 2018

Используйте exec для выполнения команды внутри контейнера вместо run. Добавьте оболочку и скрипт в качестве параметров.

singularity exec /mn/sarpanitu/singularity/test/fenics-and-more.img /bin/sh script.sh

Кроме того, добавьте выполнение параметра в качестве команды времени выполнения по умолчанию в части runScript.

%runscript
  exec "$@"
...