Claude-skill-registry galaxy-docker

Maintain and upgrade the bgruening/docker-galaxy project: bump Galaxy/Ubuntu versions, update Ansible roles and scheduler support, adjust startup/CI/tests, and manage CVMFS.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/galaxy-docker" ~/.claude/skills/majiayu000-claude-skill-registry-galaxy-docker && rm -rf "$T"
manifest: skills/data/galaxy-docker/SKILL.md
source content

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

  1. Define targets: Galaxy release, Ubuntu base, scheduler expectations (Slurm/HTCondor), and CI scope.
  2. Update build:
    galaxy/Dockerfile
    (release ARGs, build stages, slurm-drmaa, uv usage, npm cleanup).
  3. Update Ansible:
    galaxy/ansible/requirements.yml
    and playbooks (
    rabbitmq.yml
    ,
    condor.yml
    ,
    slurm.yml
    ,
    nginx.yml
    ,
    proftpd.yml
    ).
  4. Update runtime:
    galaxy/startup.sh
    ,
    galaxy/startup2.sh
    , and
    galaxy/ansible/templates/export_user_files.py.j2
    .
  5. CVMFS changes:
    cvmfs/
    sidecar +
    galaxy/docker-compose.yaml
    + resolver config.
  6. Tests/CI:
    test/
    scripts and
    .github/workflows/
    (buildx caches, test orchestration).
  7. Run tests: Use both
    --privileged
    and 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/
    and
    galaxy/docker-compose.yaml
  • Tests:
    test/bioblend/
    ,
    test/slurm/
    ,
    test/gridengine/
    ,
    test/cvmfs/
    ,
    test/container_resolvers_conf.ci.yml
  • CI:
    .github/workflows/*.yml
    and
    .github/workflows/single.sh

Guardrails and expectations

  • Keep Python installs on
    uv
    (build and runtime). Avoid
    pip install
    directly.
  • Prefer buildx cache mounts in Dockerfiles and
    cache-to/cache-from
    in GitHub Actions.
  • Use
    --rm
    for test containers and clean up by name to avoid conflicts.
  • If
    /tmp
    fills up on CI, use
    TMPDIR=/var/tmp
    for heavy Docker tests.
  • Use
    startup2
    for richer diagnostics; keep
    startup.sh
    minimal.

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.md
    for the exact sidecar design and tests.

Slurm

  • Ensure Slurm works in containers without systemd/cgroup v2 requirements.
  • configure_slurm.py.j2
    writes
    cgroup.conf
    with
    CgroupPlugin=disabled
    .
  • Slurm-DRMAA is built from source when ABI mismatches exist (documented in references).

Tests (typical order)

  • test/slurm/test.sh
    (set
    GALAXY_IMAGE=galaxy:test
    if needed)
  • test/gridengine/test.sh
    (uses ephemeris container for wait)
  • test/bioblend/test.sh
  • test/cvmfs/test.sh
    (sidecar + mount propagation)
  • startup2
    sanity:
    docker run --rm --privileged ... /usr/bin/startup2

References

  • references/upgrade-25.1.md
    for 25.1 upgrade decisions, pins, and pitfalls.