Dfam-consortium / TETools

Dfam Transposable Element Tools Docker container.
Creative Commons Zero v1.0 Universal
84 stars 17 forks source link

Feature request: Make the Docker image multi-platform #25

Open gancho-ivanov opened 2 years ago

gancho-ivanov commented 2 years ago

Hi,

I'd like to request to make the Docker image multi-platform. Currently https://hub.docker.com/r/dfam/tetools/tags are only for linux/amd64. Could you please add linux/arm64 to the supported platforms ?

The task should be (relatively) easy by using docker buildx instead of docker build. I'd be glad to help if the feature is approved!

Thank you!

julien-faye commented 2 years ago

+1 for adding support for linux/arm64 platform!

markjens commented 1 year ago

One more vote for linux/arm64 version of the image from me!

asgray commented 9 months ago

This answer is long overdue, but in case anyone still cares, we unfortunately cannot build the current version of TETools for arm64. We don't maintain all of the included tools, and at least one of those (HMMER) won't compile for arm64 systems.

I think the best option might be to fork/clone the repo, modify the Dockerfile to only include the tools you need, and try to build it yourself, but I also can't guarantee that everything you include will be compatible.

It's possible that the tools we include will change in the future, but for now I'll close this issue.

markjens commented 9 months ago

Hello @asgray !

Thank you for your response! HHMER added support for Linux/Mac ARM64 with v3.4: https://github.com/EddyRivasLab/hmmer/commit/cb4d290ade068ec44a7878df5d36f84ab276a50f

I will try to update the tools to their latest versions and see which ones need work!

asgray commented 9 months ago

Oh thanks for the heads up. Reopening this issue.

asgray commented 8 months ago

It looks like the the last dependency blocking a full arm64 built is NINJA. It's only required to run RepeatModeler, but it doesn't look like there are plans for it to be updated to arm64 in the new future. This Issue presents a possible solution, but we don't have the bandwidth at present to work on it.

markjens commented 8 months ago

NINJA team just released https://github.com/TravisWheelerLab/NINJA/releases/tag/0.99-cluster_only that builds on Linux ARM64!

asgray commented 8 months ago

I've pushed out a new multi-platform version of TETools to DockerHub, starting from version 1.88.5. There should be no other changes between 1.88 and 1.88.5 other than platform compatibility. That said, please report any issues, since we are not able to test the arm64 image directly.

rmhubley commented 1 month ago

Hi @gancho-ivanov (and others). We do not have a satisfactory build for ARM64 yet and I am not sure we have the time to work on this. The current Dockerfile installs pre-compiled binaries for two packages (RMBlast and UCSC Tools) and therefore we would need to generate cross-compiled ARM64 binary equivalents, or encode the compilation in the Dockerfile itself. The NCBI Blast (RMBlast) compilation is super long (even using multi-threaded builds) and I am sure buildX would take forever to build this. If you know of a simpler way to handle this and test it, please let us know. I am going to leave this open as wished-for-feature and we will try to get back to it when we can.