我是码头工人世界的新手。我创建了一个 docker 镜像来运行 samtools。我有一个执行 samtools 的 perl 脚本,变量如下所示:
my $SAMTOOLS_BIN = "samtools";
在这种情况下,执行系统中安装的 samtools 的版本。
有没有办法可以将 docker 图像作为变量传递?
my $SAMTOOLS_BIN = "docker_image";
在 Perl 中,您可以使用多种机制来运行外部程序(例如system命令、反引号等open())。我假设您的system_p()子例程使用其中一种方法。
任何可以在 shell 命令行上作为命令运行的东西都可以使用 Perl 中的这些机制来启动。你只需要弄清楚正确的命令是什么。
您用来运行 Docker 容器的命令可能是docker run [container_name](后跟一些选项)。一旦您确定了您需要哪些选项,那么只需将该字符串传递给system()命令(或您正在使用的任何机制)。
我假设您从 Docker Hub 获取 Docker 映像。那里有许多可用的 samstools 图像,所以我不确定您使用的是哪一个。但很可能关于您正在使用的图像的页面(例如biocontainers/samtools)将包含有关如何运行它的有用信息。