no runscript defined for this container
Some images seems to have suffered from a build issue.? Or is it my runtime.
./containers/scripts/singularity_cmd run containers/images/bids/bids-qsiprep--0.24.0.sing
There is no runscript defined for this container
apptainer is called and return with the "error" and a zero exit code !?
see https://github.com/sylabs/singularity/pull/3362 https://github.com/apptainer/apptainer/issues/2561
Might be worth having a simple test after building to ensure it runs (though the exit code is zero, so that need to analyse the output).
@yarikoptic does these images work in your environment? I have the same issue with fmriprep--25.0.0 image. Due to the zero exit code, it does not fail, but does nothing.
:-( didn't yet have a chance to try, but indeed
(git)smaug:~/proj/repronim/containers[master]images/bids
$> ./bids-fmriprep--25.0.0.sing --help
There is no runscript defined for this container
1 10361.....................................:Tue 13 May 2025 03:24:19 PM EDT:.
(git)smaug:~/proj/repronim/containers[master]images/bids
$> echo $?
0
1 10362.....................................:Tue 13 May 2025 03:24:27 PM EDT:.
(git)smaug:~/proj/repronim/containers[master]images/bids
$> singularity --version
2.6.1-dist
so I guess it is something recent changed in how docker images are provided which screwed up build of singularity images with that ancient (used for "maximal compatibility") singularity. I guess it is time to upgrade singularity and/or switch to apptainer and rebuild some of those recent ones. Let me sweep through them...
current state of them -- 17 with "no runscript" :-(
$> scripts/check_images--help 2>&1 | tee /tmp/images.out
images/adswa/adswa-nilearn--0.7.1.sing: failed to execute --help
-hcppipelines--4.3.0-3.sing: failed to execute --help
images/bids/bids-micapipe--0.0.1.sing: failed to execute --help
images/bids/bids-mindboggle--0.0.4-1.sing: failed to execute --help
images/bids/bids-mindboggle--0.0.4.sing: failed to execute --help
images/bids/bids-mrtrix3-connectome--0.4.1.sing: failed to execute --help
images/bids/bids-mrtrix3-connectome--0.4.2.sing: failed to execute --help
images/bids/bids-mrtrix3-connectome--0.5.0.sing: failed to execute --help
images/bids/bids-mrtrix3-connectome--0.5.1.sing: failed to execute --help
images/bids/bids-mrtrix3-connectome--0.5.2.sing: failed to execute --help
images/bids/bids-mrtrix3-connectome--0.5.3.sing: failed to execute --help
images/bids/bids-niak--latest.sing: failed to execute --help
images/bids/bids-nibabies--25.0.0.sing: no runscript
images/bids/bids-nibabies--25.0.1.sing: no runscript
images/bids/bids-petdeface--0.2.1a.sing: no runscript
images/bids/bids-petdeface--0.2.2.sing: no runscript
images/bids/bids-qsiprep--0.24.0.sing: no runscript
images/bids/bids-qsirecon--1.0.0.sing: no runscript
images/bids/bids-qsirecon--1.0.1.sing: no runscript
images/bids/bids-qsirecon--1.1.0.sing: no runscript
images/bids/bids-rshrf--1.0.1.sing: failed to execute --help
images/bids/bids-smriprep--0.17.0.sing: no runscript
images/bids/bids-smriprep--0.18.0.sing: no runscript
images/bids/bids-spm--0.0.15.sing: failed to execute --help
images/bids/bids-xcp-d--0.10.0.sing: no runscript
images/bids/bids-xcp-d--0.10.1.sing: no runscript
images/bids/bids-xcp-d--0.10.3.sing: no runscript
images/bids/bids-xcp-d--0.10.5.sing: no runscript
images/bids/bids-xcp-d--0.10.6.sing: no runscript
images/bids/bids-xcp-d--0.10.7.sing: no runscript
images/bids/bids-xcp-d--0.6.1.sing: failed to execute --help
images/bids/bids-xcp-d--0.6.2.sing: failed to execute --help
images/bids/bids-xcp-d--0.6.3.sing: failed to execute --help
images/bids/bids-xcp-d--0.6.4.sing: failed to execute --help
images/bids/bids-xcp-d--0.7.0.sing: failed to execute --help
images/bids/bids-xcp-d--0.7.1.sing: failed to execute --help
images/brainiak/brainiak-brainiak--0.11-20201015.sing: failed to execute --help
images/brainiak/brainiak-brainiak--0.12-20250106.sing: no runscript
images/brainiak/brainiak-rtcloud--1.4.sing: failed to execute --help
images/brainiak/brainiak-rtcloudlite--1.4.sing: failed to execute --help
images/brainiak/brainiak-rtcloudtest--1.5.sing: failed to execute --help
images/brainiak/brainiak-rtcloudxl--1.4.sing: failed to execute --help
images/brainiak/brainiak-rtconda--1.3.sing: failed to execute --help
scripts/check_images--help 2>&1 293.75s user 169.34s system 61% cpu 12:27.58 total
tee /tmp/images.out 0.00s user 0.00s system 0% cpu 12:27.58 total
Is there a plan to fix the build environment?
The newly built image (eg images/bids/bids-qsiprep--1.0.1.sing) suffer from the same issue, making these unusable.
Thanks!
yes! I was about to upgrade singularity to some newer version of singualarity or apptainer and to rebuild those affected or all of them.
Do you @bpinsard have some informed opinion on what (version) of singularity or apptainer I should use for maximal "correctness" and portability (as to be able to run with both singularity and apptainer versions seen in the wild)?
No idea sorry, I am not even sure to understand why it is broken if nothing changed.
re-ping: newer images are still built with that issue. https://apptainer.org/docs/user/1.0/singularity_compatibility.html#sif-image-compatibility says that apptainer built images should be compatible with singularity.
I just found this issue after trying to get any heudiconv container to work. Docker newer than v26 appears to be broken due to issues with the adapter in datalad-container. And apptainer is broken via this issue here.
For those coming here for a workaround. This made apptainer v1.4.0 happy for me:
[datalad "containers.apptainer"]
image = repronim-containers/images/nipy/nipy-heudiconv--1.3.3.sing
cmdexec = apptainer exec {img} bash -c 'PATH=/opt/dcm2niix-v1.0.20240202/bin:$PATH /opt/miniconda-py39_4.12.0/bin/heudiconv {cmd}'
Thanks @mih,
So the workaround is to use exec and specify all environment variables required for the packaged tool to work?
For pipelines using multiple tools (eg. fmriprep) this can be numerous variables to set, I remember trying that and ending up with bunch of dynamic libraries missing at runtime.
If ever of interest, I started to work on a github workflow to build containers with apptainer when recipes are changed https://github.com/courtois-neuromod/containers/blob/master/.github/workflows/apptainer-build.yml (just needs to setup a storage remote where to push the annexed container with secrets for creds) Relies on a build env with apptainer built here https://github.com/courtois-neuromod/containers/blob/master/.github/workflows/docker-build.yml from https://github.com/courtois-neuromod/containers/blob/master/Dockerfile.
- I think I better just rebuild all (for consistency) containes, and no longer bother with custom
Singularityfile: it was initially needed to pre-create folders but then singularity became smart enough. We should be able to justsingularity pull. That might affect your https://github.com/courtois-neuromod/containers/blob/master/.github/workflows/apptainer-build.yml @bpinsard but may be you see why I should not do that altogether? - I like the idea of shifting running builds to github CI ... so I see
- adopt your Dockerfile
- CI run to docker-build.yml
- adjust my
create_singularitiesto just use that env to build - rebuild all containers (broken or not) and remove Singularity files with it
- establish credentials etc to be able to push to my locations
- deploy CI to run
create_singularitieson cron on github
sounds right?
That sound perfect!
would you have time to provide initial PR for those initial steps so you "join" appropriately among contributors in git history? ;-)
Just for informational purposes:
bids-fmriprep--25.1.4.sing is also missing runscirpt
get(ok): images/bids/bids-fmriprep--25.1.4.sing (file) [from datasets.datalad.org...]
runner-concurrent-0:/builds/CPIP/derivatives/fmriprep/containers# cd ..
runner-concurrent-0:/builds/issue/CPIP/derivatives/fmriprep# containers/scripts/singularity_cmd run containers/images/bids/bids-fmriprep--25.1.4.sing --input sourcedata/bids/sub-3355/ses-1a/ --fs-license-file freesurfer.license --participant-label 3355 --work-dir /tmp --skip_bids_validation ./sourcedata/bids/ ./ participant
There is no runscript defined for this container