Я пытаюсь использовать Snakemake на AWS EKS, выполняя команды оболочки в контейнерах сингулярности. Если я правильно понял, тогда Snakemake сам по себе запускается kubernetes как контейнер, поэтому я запускаю контейнер Singularity внутри Pod.
У меня есть образ Ubuntu в той же папке Snakefile.
Как сообщить Singularity путь, по которому хранится изображение?
Я попытался запустить рабочий процесс, указав изображение в DockerHub, и он отлично работает.
Однако я не могу заставить его работать с изображениями, хранящимися в моем экземпляре EC2, если я укажу флаг --kubernetes (если я запускаю его без --kubernetes, он отлично работает и с локальными изображениями). Я попытался указать путь к образу на экземпляре EC2, но он не работает.
Мой Snakefile выглядит примерно так:
rule test:
singularity:
"ubuntu.simg"
output:
"out.txt"
shell:
"cat /etc/os-release > {output}"
и я запускаю Snakemake с командой:
snakemake --kubernetes --default-remote-provider S3 --default-remote-prefix S3-bucket-name --use-singularity
Требуемый выходной файл - это файл "out.txt", созданный в указанном контейнере s3 с информацией о выпуске os контейнера "ubuntu.sigm".
Фактический результат - неудачная работа. Если я проверяю с
kubectl logs snakejob-c25eaf1f-6ad4-505e-94a0-646543a59d33
Я получаю ошибку:
ERROR : Image path ubuntu.simg doesn't exist: No such file or directory
ABORT : Retval = 255
Кто-нибудь, у кого была такая же проблема?