Как передать docker изображение в качестве аргумента в сценарии perl - PullRequest
0 голосов
/ 05 марта 2020

Я новичок в мире docker. Я создал docker образ для запуска samtools. У меня есть сценарий perl, который выполняет samtools, и переменная выглядит следующим образом:

my $SAMTOOLS_BIN = "samtools";

В этом случае выполняется версия установленного в системе samtools.

Есть ли способ что я могу вместо этого передать docker изображение как переменную?

my $SAMTOOLS_BIN = "docker_image";

1 Ответ

2 голосов
/ 05 марта 2020

В Perl вы можете использовать ряд механизмов для запуска внешних программ (например, команда system, обратные метки и open()). Я предполагаю, что ваша подпрограмма system_p() использует один из этих подходов.

Все, что вы можете запустить в качестве команды в командной строке вашей оболочки, может быть запущено с использованием этих механизмов в Perl. Вам просто нужно определить правильную команду.

Команда, которую вы используете для запуска контейнера Docker, вероятно, будет docker run [container_name] (с некоторыми опциями). После того, как вы точно определили, какие опции вам нужны, это просто случай передачи этой строки в команду system() (или любой другой механизм, который вы используете).

Я полагаю, вы получаете Docker изображение с Docker Hub. Оттуда доступно несколько изображений samstools, поэтому я не уверен, какой из них вы используете. Но вполне вероятно, что страница с изображением, которое вы используете (например, biocontainers / samtools ), будет содержать полезную информацию о том, как его запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...