Docker Images tracking the stable Galaxy releases
Table of content
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:
Dockerfile
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.
my_tool_list.yml
below). See
this page
for the file format requirements.
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.
docker run -p 8080:80 my-docker-test
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:
populating Galaxy data libraries
setup-data-libraries -i $GALAXY_ROOT_DIR/library_data.yaml -g http://localhost:8080
-u $GALAXY_DEFAULT_ADMIN_USER -p $GALAXY_DEFAULT_ADMIN_PASSWORD
The actual data is references in a YAML file similar this one .
installing workflows
workflow-install --workflow_path $GALAXY_HOME/workflows/ -g http://localhost:8080
-u $GALAXY_DEFAULT_ADMIN_USER -p $GALAXY_DEFAULT_ADMIN_PASSWORD
Where all Galaxy workflows needs to be in one directory, here the
$GALAXY_HOME/workflows/
.
running Galaxy data-managers to create indices or download data
run-data-managers -u $GALAXY_DEFAULT_ADMIN_USER -p $GALAXY_DEFAULT_ADMIN_PASSWORD -g http://localhost:8080
--config data_manager_rna_seq.yaml
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
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:
/tmp
is small in CI, set
TMPDIR=/var/tmp
for test scripts.