Galaxy Docker skill
Use this skill when working in the bgruening/docker-galaxy repo to upgrade Galaxy releases or refresh runtime, scheduler, CVMFS, and CI behavior.
Quick start workflow
- •Define targets: Galaxy release, Ubuntu base, scheduler expectations (Slurm/HTCondor), and CI scope.
- •Update build:
galaxy/Dockerfile(release ARGs, build stages, slurm-drmaa, uv usage, npm cleanup). - •Update Ansible:
galaxy/ansible/requirements.ymland playbooks (rabbitmq.yml,condor.yml,slurm.yml,nginx.yml,proftpd.yml). - •Update runtime:
galaxy/startup.sh,galaxy/startup2.sh, andgalaxy/ansible/templates/export_user_files.py.j2. - •CVMFS changes:
cvmfs/sidecar +galaxy/docker-compose.yaml+ resolver config. - •Tests/CI:
test/scripts and.github/workflows/(buildx caches, test orchestration). - •Run tests: Use both
--privilegedand non-privileged runs where relevant.
Repo map (files to touch)
- •Build:
galaxy/Dockerfile - •Startup:
galaxy/startup.sh,galaxy/startup2.sh - •Galaxy config export:
galaxy/ansible/templates/export_user_files.py.j2 - •Ansible roles:
galaxy/ansible/requirements.yml - •Services:
galaxy/ansible/rabbitmq.yml,galaxy/ansible/condor.yml,galaxy/ansible/slurm.yml,galaxy/ansible/nginx.yml,galaxy/ansible/proftpd.yml - •Slurm config template:
galaxy/ansible/templates/configure_slurm.py.j2 - •Container resolvers:
galaxy/ansible/templates/container_resolvers_conf.yml.j2 - •CVMFS sidecar:
cvmfs/andgalaxy/docker-compose.yaml - •Tests:
test/bioblend/,test/slurm/,test/gridengine/,test/cvmfs/,test/container_resolvers_conf.ci.yml - •CI:
.github/workflows/*.ymland.github/workflows/single.sh
Guardrails and expectations
- •Keep Python installs on
uv(build and runtime). Avoidpip installdirectly. - •Prefer buildx cache mounts in Dockerfiles and
cache-to/cache-fromin GitHub Actions. - •Use
--rmfor test containers and clean up by name to avoid conflicts. - •If
/tmpfills up on CI, useTMPDIR=/var/tmpfor heavy Docker tests. - •Use
startup2for richer diagnostics; keepstartup.shminimal.
CVMFS
- •Privileged runs use full CVMFS client + autofs.
- •Sidecar is optional via compose profile (
cvmfs/image). - •Container resolver config should include cached mulled paths on both CVMFS and
/export. - •See
references/upgrade-25.1.mdfor the exact sidecar design and tests.
Slurm
- •Ensure Slurm works in containers without systemd/cgroup v2 requirements.
- •
configure_slurm.py.j2writescgroup.confwithCgroupPlugin=disabled. - •Slurm-DRMAA is built from source when ABI mismatches exist (documented in references).
Tests (typical order)
- •
test/slurm/test.sh(setGALAXY_IMAGE=galaxy:testif needed) - •
test/gridengine/test.sh(uses ephemeris container for wait) - •
test/bioblend/test.sh - •
test/cvmfs/test.sh(sidecar + mount propagation) - •
startup2sanity:docker run --rm --privileged ... /usr/bin/startup2
References
- •
references/upgrade-25.1.mdfor 25.1 upgrade decisions, pins, and pitfalls.