0

我是码头工人世界的新手。我创建了一个 docker 镜像来运行 samtools。我有一个执行 samtools 的 perl 脚本,变量如下所示:

my $SAMTOOLS_BIN = "samtools";

在这种情况下,执行系统中安装的 samtools 的版本。

有没有办法可以将 docker 图像作为变量传递?

my $SAMTOOLS_BIN = "docker_image";
4

1 回答 1

2

在 Perl 中,您可以使用多种机制来运行外部程序(例如system命令、反引号等open())。我假设您的system_p()子例程使用其中一种方法。

任何可以在 shell 命令行上作为命令运行的东西都可以使用 Perl 中的这些机制来启动。你只需要弄清楚正确的命令是什么。

您用来运行 Docker 容器的命令可能是docker run [container_name](后跟一些选项)。一旦您确定了您需要哪些选项,那么只需将该字符串传递给system()命令(或您正在使用的任何机制)。

我假设您从 Docker Hub 获取 Docker 映像。那里有许多可用的 samstools 图像,所以我不确定您使用的是哪一个。但很可能关于您正在使用的图像的页面(例如biocontainers/samtools)将包含有关如何运行它的有用信息。

于 2020-03-05T16:35:57.733 回答