bgruening / docker-galaxy

:whale::bar_chart::books: Docker Images tracking the stable Galaxy releases.
http://bgruening.github.io/docker-galaxy
MIT License
226 stars 134 forks source link

Install tools from a local toolshed #509

Closed Tomnl closed 5 years ago

Tomnl commented 5 years ago

Hi Björn,

I think this issue might be related related to #72

If I wanted to extend the docker image to add a collection of tools, is it possible to install tools from a local toolshed running from the same computer as the docker (or a toolshed running on the same network but not accessible outside the network)?

At the moment when I try to do this I am getting an "Uncaught exception in exposed API method" error.

For example, if I add the following to the Dockerfile:

RUN add-tool-shed --url 'http://172.31.10.181:9009/' --name 'Local Tool Shed'

ADD tool_list.yaml $GALAXY_ROOT/tool_list.yaml
RUN install-tools $GALAXY_ROOT/tool_list.yaml

Where the tool_list.yaml contains:

- name: probmetab
  owner: tomnl
  tool_panel_section_id: 'annotation_LCMS'
  tool_shed_url: http://172.31.10.181:9009

Where http://172.31.10.181:9009 is running a local toolshed.

I then run the following docker command

docker build -t galaxy-test . --network host

But get the following error when trying to install the tool

(1/7) Installing repository probmetab from tomnl to section "annotation_LCMS" at revision 6ce5b4919d44 (TRT: 0:00:00.098876)
    * Error installing a repository (after 0:00:00.077905 seconds)! Name: probmetab,owner: tomnl, revision: 6ce5b4919d44, error: {"err_msg": "Uncaught exception in exposed API method:", "err_code": 0}

FYI: @RJMW

bgruening commented 5 years ago

Mh, I never tried this but yes it should work. Do you see the TS in the admin panel from within Galaxy?

Do you need this local TS or can be install the tools in a different way?

Tomnl commented 5 years ago

Hi @bgruening,

Thanks for the reply.

Yes, I can see the TS in the admin panel from Galaxy when the build is made and running.

If there is another approach to install the tools for the build I would be happy to use that. I just wanted an approach to install tools into the Docker build that are not currently in either the main toolshed or the test toolshed.

What other approaches would you recommend?

bgruening commented 5 years ago

Have you seen this here: https://github.com/bgruening/docker-galaxy-stable#Integrating-non-Tool-Shed-tools-into-the-container ?

Tomnl commented 5 years ago

Thanks! I will give that a try.

Just to check though. I believe these are commands for the "docker run" stage, are there any other options for including non-toolshed tools at the build stage?

bgruening commented 5 years ago

Sure everything that you can do during run time can be done during build time. You just need to copy the XML files into the container and provide one of the manually-modified tool_conf.xml files ... thats it.

Tomnl commented 5 years ago

Thanks Björn. This works well for my purposes. I will close now

FYI: @RJMW