planemo icon indicating copy to clipboard operation
planemo copied to clipboard

Checking a wrapper with a singularity container does not seem to be supported?

Open Chabrier opened this issue 5 years ago • 4 comments

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?

Chabrier avatar Apr 17 '19 08:04 Chabrier

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.

mvdbeek avatar Apr 17 '19 08:04 mvdbeek

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?

Chabrier avatar Apr 17 '19 08:04 Chabrier

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.

mvdbeek avatar Apr 17 '19 08:04 mvdbeek

We do use the explicit one, and is does work for us.

Chabrier avatar Apr 17 '19 16:04 Chabrier

Seems to be "solved", ie option 1 and 2 seemed to be sufficient, or?

bernt-matthias avatar Nov 17 '22 13:11 bernt-matthias