Build funannotate2 Docker image (pixi + GitHub Actions)#51
Merged
nextgenusfs merged 6 commits intomainfrom Apr 21, 2026
Merged
Conversation
added 6 commits
April 20, 2026 08:22
Agent-Id: agent-001dbe11-1134-451f-9706-c99fb75eb238
- Dockerfile (linux/amd64, 3 stages: pixi build -> dbs install -> minimal final) - pixi.lock (linux-64, generated in prefix-dev/pixi container) - .github/workflows/docker.yml (workflow_dispatch + v* tag; GHCR + Docker Hub with secret guard) Agent-Id: agent-001dbe11-1134-451f-9706-c99fb75eb238
- Multi-stage Dockerfile (build -> dbs -> final) targeting linux/amd64 - pixi.lock generated in ghcr.io/prefix-dev/pixi container (linux-64 only) Agent-Id: agent-001dbe11-1134-451f-9706-c99fb75eb238
Agent-Id: agent-001dbe11-1134-451f-9706-c99fb75eb238
Adds a pull_request trigger to docker.yml scoped to Dockerfile, pixi config, and the workflow file itself, so image builds are validated on PRs touching container-relevant files without running on every commit. PRs build-only (no registry push); pushes happen only on tag push or workflow_dispatch.
- README: promote Docker to primary install path; add pixi install recipe; relabel the bioconda section as Linux (conda). - docs/installation.rst: new 'Using the Docker image' and 'Installing with pixi' sections at the top; keep existing conda and pip instructions intact. Agent-Id: agent-001dbe11-1134-451f-9706-c99fb75eb238
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a fully-functional
nextgenusfs/funannotate2Docker image assembled with pixi, plus a GitHub Actions workflow that builds and publishes it to GHCR (and Docker Hub onceDOCKERHUB_USERNAME/DOCKERHUB_TOKENsecrets are set).See the spec for full design rationale and verification notes.
Files added
pixi.toml/pixi.lock— pixi workspace with bioconda tooling (augustus, minimap2, miniprot, snap, glimmerhmm, diamond, trnascan-se, table2asn, pytantan, …), python deps (gfftk, gapmm2, buscolite, pyhmmer, pyfastx, tensorflow 2.10–2.15), and PyPI packages (funannotate2source,funannotate2-addons,helixerlite,annorefine).Dockerfile— three-stage build:pytantanfrom source with-DHAVE_AVX2:BOOL=OFFso it runs on any x86_64 host (incl. Rosetta 2 on Apple Silicon).funannotate2 install -d allinto/opt/funannotate2_dbon a dedicated layer (~3 GB; BUSCO lineages download at runtime).ubuntu:22.04with the pixi env, databases, and captured activation script via tini..dockerignore— keeps the build context slim..github/workflows/docker.yml— builds on tag pushv*,workflow_dispatch, and paths-filtered PRs (Dockerfile / pixi.* / docker.yml). PRs build-only; tag and dispatch push to GHCR (+ Docker Hub if secret is present).Notable design choices
linux/amd64only — bioconda coverage on arm is incomplete; target is HPC Linux x86_64. Apple Silicon users run under Rosetta.predict/annotatefetch on demand; docs will describe mounting a host cache dir.Local verification (Docker Desktop on Apple Silicon, Rosetta 2)
docker build --target buildsucceeds (~3 min; pixi resolves lockfile, pytantan SSE4 rebuild ~23 s)funannotate2 --help,funannotate2 install -s,f2a --help,helixerlite --helpall exit 0pytantan+RepeatFinder(default_scoring_matrix())instantiates cleanlydbsstage withfunannotate2 install -d all) will be validated by this PR's CI run on native x86_64.Follow-ups (after this merges and the image is verified)
DOCKERHUB_USERNAME+DOCKERHUB_TOKENrepo secrets to enable Docker Hub publishing.docs/installation.rstandREADME.mdwith pixi and Docker install instructions.althonos/pytantanabout the AVX2-only wheels (draft ready in workspace notes).Pull Request opened by Augment Code with guidance from the PR author