Galaxy Docker Image

Docker Images tracking the stable Galaxy releases

Table of content

View the Project on GitHub bgruening/docker-galaxy

Extending the Docker Image

If the desired tools are already included in the Tool Shed, building your own personalised Galaxy docker Image (Galaxy flavour) can be done using the following steps:

  1. Create a file named Dockerfile
  2. Include FROM quay.io/bgruening/galaxy at the top of the file. This means that you use the Galaxy Docker Image as base Image and build your own extensions on top of it.
  3. Supply the list of desired tools in a file ( my_tool_list.yml below). See this page for the file format requirements.
  4. Execute docker build -t my-docker-test . 4a. (if behind proxy). Add the ENV http_proxy and https_proxy variables as IPs (to avoid nameserver resolution problems) as in the example below.
  5. Run your container with docker run -p 8080:80 my-docker-test
  6. Open your web browser on http://localhost:8080

For a working example, have a look at these Dockerfiles.

# Galaxy - deepTools
#
# VERSION       0.2

FROM quay.io/bgruening/galaxy

MAINTAINER Björn A. Grüning, bjoern.gruening@gmail.com

ENV GALAXY_CONFIG_BRAND deepTools
# The following two lines are optional and can be given during runtime
# with the -e http_proxy='http://yourproxyIP:8080' parameter
ENV http_proxy 'http://yourproxyIP:8080'
ENV https_proxy 'http://yourproxyIP:8080'

WORKDIR /galaxy

RUN add-tool-shed --url 'http://testtoolshed.g2.bx.psu.edu/' --name 'Test Tool Shed'

# Install Visualisation
RUN install-biojs msa

# Adding the tool definitions to the container
ADD my_tool_list.yml $GALAXY_ROOT_DIR/my_tool_list.yml

# Install deepTools
RUN install-tools $GALAXY_ROOT_DIR/my_tool_list.yml

# Mark folders as imported from the host.
VOLUME ["/export/", "/data/", "/var/lib/docker"]

# Expose port 80 (webserver), 21 (FTP server)
EXPOSE :80
EXPOSE :21

# Autostart script that is invoked during container start
CMD ["/usr/bin/startup"]

or the RNA-workbench . The RNA-workbench has advanced examples about:

The actual data is references in a YAML file similar this one .

Where all Galaxy workflows needs to be in one directory, here the $GALAXY_HOME/workflows/ .

The data-managers can be configured and specified in a YAML file similar to this one .

If you host your flavor on GitHub consider to test our build with Travis-CI. This project will help you: https://github.com/bgruening/galaxy-flavor-testing

Test matrix [toc]

The project includes local test scripts and CI workflows. Use the matrix below to decide what to run.

Area Script / Workflow Requires Notes
Image build docker build -t galaxy:test galaxy/ Docker Baseline image build.
Startup sanity docker run --rm --privileged galaxy:test /usr/bin/startup2 Privileged Confirms services start and CVMFS messaging is sane.
Bioblend test/bioblend/test.sh Running Galaxy container Uses a Bioblend test image against Galaxy.
Slurm test/slurm/test.sh Docker, Slurm test image Uses external Slurm container; set GALAXY_IMAGE=galaxy:test if needed.
SGE (Grid Engine) test/gridengine/test.sh Docker, SGE test image Uses ephemeris container to wait for Galaxy.
CVMFS sidecar test/cvmfs/test.sh Privileged Builds and validates mount propagation from sidecar.
FTP/SFTP .github/workflows/single.sh Docker, sshpass (CI) FTP and SFTP checks run in CI; local run skips SFTP if sshpass is missing.
/export persistence startup.sh / startup2.sh /export volume Export and cache relocation happens during startup; exercised by CI runs.
HTTPS/TLS .github/workflows/single.sh Docker Uses curl and openssl s_client against port 443.
Tool install smoke .github/workflows/single.sh Docker Installs sample tools and verifies tool availability.
Container resolvers test/container_resolvers_conf.ci.yml Galaxy container CI uses a minimal resolver config for toolbox resolution tests.
Image analysis (optional) .github/workflows/single.sh dive Runs only when dive is installed.
Single-container CI .github/workflows/single_container.yml CI Full container test (privileged).
Multi-test CI .github/workflows/single.sh CI Builds image + runs SLURM, SGE, Bioblend; uses buildx cache.

Notes:

List of Galaxy flavours [toc]