对于snakemakev5.27+
有没有办法使用指向本地图像的容器指令运行snakemake?例如,如果我将 Docker 容器存储在 Dockerhub 上,并且我在本地也有一个副本,那么在运行 snakemake 时,如果本地已经存在确切的副本,我不希望规则从 DockerHub 中提取奇异图像副本。使跑得更快。
对于snakemakev5.27+
有没有办法使用指向本地图像的容器指令运行snakemake?例如,如果我将 Docker 容器存储在 Dockerhub 上,并且我在本地也有一个副本,那么在运行 snakemake 时,如果本地已经存在确切的副本,我不希望规则从 DockerHub 中提取奇异图像副本。使跑得更快。
当然,只需将相对或绝对文件路径传递给指令。
即使snakemake 手册没有明确说明,也可以使用该containerized指令使用局部奇点图像。
因此,而不是上面链接中的示例:
containerized: "docker://username/myworkflow:1.0.0"
可以指向奇点sif文件路径(里面包含图片)
containerized: "/path/to/myimage.sif"
确保--use-singularity在运行 snakemake 时使用。
如何构建奇点 (sif) 图像:
您可以按照此处所述的各种方式构建 sif 映像,对于您的问题,您可以从本地 docker 映像构建它。
即您可以列出您的本地图像docker images并选择一个来构建本地 sif 文件,如下所示:
SINGULARITY_NOHTTPS=1 singularity build /path/to/myimage.sif docker-daemon://mydockerimage:latest
请注意,它似乎不能直接从本地 docker 容器中工作,即我希望它能够工作:
containerized: "docker-daemon://scpipe_docker:latest"
...但它不是snakemake 6.10.0版