Создание контейнера с особенностями с помощью nextflow - PullRequest
1 голос
/ 03 октября 2019

Я пытаюсь создать контейнер для сингулярности с установленным nextflow. После сборки я устанавливаю его в каталог, и он устанавливается как ROOT. Когда я пытаюсь запустить контейнер, он терпит неудачу, так как я не root. Я просмотрел лучшие практики, и там говорится следующее:

Всегда устанавливайте пакеты, программы, данные и файлы в места расположения операционной системы (например, не / home, / tmp или любые другие каталоги, которые могутобычно меня связывают).

Мой файл определения:

BootStrap: yum
OSVersion: 7
MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/$basearch/
Include: yum

%post
    yum -y install java-1.8.0-openjdk-headless
    yum -y install wget
    yum -y install which

    mkdir /s2fast
    cd /s2fast
    wget -qO- https://get.nextflow.io | bash

%runscript
    exec /s2fast/nextflow

При запуске он получает «Отказано в доступе» Я запускаю особенность 3.4.0-1

Не уверен, стоит ли мне использовать пути связывания, наложения или что-то еще?

1 Ответ

1 голос
/ 04 октября 2019

Если вашему контейнеру нужны только Nextflow , могу ли я предложить использовать биоконтейнер Nextflow из quay.io ?

singularity pull docker://quay.io/biocontainers/nextflow:19.07.0--hecc5488_0

Если вам нужно установить другие приложениявместе со Nextflow обычно их устанавливают в /usr/local/bin. Но нет ничего плохого в использовании пользовательских путей к каталогам, таких как то, что вы делаете. В любом случае вам необходимо убедиться, что эти приложения имеют необходимые разрешения. Просто добавьте chmod 755 /s2fast/nextflow в свой % post раздел. Также удалите раздел % runcript . Обычно это не требуется, если вам не нужно обрабатывать аргументы командной строки.

...