planemo
planemo copied to clipboard
Checking a wrapper with a singularity container does not seem to be supported?
Hello,
the log that i get:
Applying linter tool_xsd... FAIL
.. ERROR: Invalid tmp1dx9cE found. Errors [/tmp/tmp1dx9cE:4:0:ERROR:SCHEMASV:SCHEMAV_CVC_ENUMERATION_VALID: Element 'container', attribute 'type': [facet 'enumeration'] The value 'singularity' is not an element of the set {'docker'}.
/tmp/tmp1dx9cE:4:0:ERROR:SCHEMASV:SCHEMAV_CVC_DATATYPE_VALID_1_2_1: Element 'container', attribute 'type': 'singularity' is not a valid value of the atomic type 'ContainerType'.]
Failed linting
Is there a workaround, or a plan?
We just need to add it to the galaxy.xsd, I'll take care of it. That said in most cases (but not all of course) you probably want to just use the regular
<requirement type="package" version="1.2">cool-program</requirement>
This would allow the Galaxy admin to install the cool-program package via Conda, Modules, Docker, Singularity etc., depending on how Galaxy is configured. The second-best option is to use
<container type="docker">quay.io/username/cool-program:1.2</container>
which will pull and convert a docker container to a singularity container and then use the singularity container if singularity is configured. This lets admin choose if they want docker or singularity and will manage the pulling automatically.
The last option I'd use is
<container type="singularity">cool-program:1.2</container>
which requires the admin to manually place the singularity image in the configured folder.
I had a look on the galaxy.xsd, a i did get the point :)
But i did not get the "type set to docker", with the automatic convertion to a singularity image? In this case where do you tell that singularity should be runned? Where do i configure this? that sigularity should be used, on a converted docker image?
singularity can run docker and singularity images, you only need to enable singularity and that's it. what kind of resolvers you want to use you can configure in https://github.com/galaxyproject/galaxy/blob/dev/config/container_resolvers_conf.xml.sample, though the explicit one (the last 2 options i mentioned) are enabled by default if one of docker or singularity is enabled for a destination.
We do use the explicit one, and is does work for us.
Seems to be "solved", ie option 1 and 2 seemed to be sufficient, or?