Bioconductor / bioconductor_docker

Docker Containers for Bioconductor
https://bioconductor.org/help/docker/
Artistic License 2.0
73 stars 31 forks source link

Make an ARM image available #64

Closed Adafede closed 1 year ago

Adafede commented 1 year ago

Hi, would be very cool to have an ARM version also available on DockerHub.

Probably feasible directly within a slightly modified GitHub action.😺

Best,

almahmoud commented 1 year ago

Hello. I am assuming you are looking to run on an M1 mac. While we have very recently started supporting arm binaries for Bioconductor packages, it will take some time to provide arm versions of everything in our stack. Unfortunately, it's not as easy as a slightly modified GHA. Two issues we particularly have our eyes on are the one tracking the rocker base image we use (https://github.com/rocker-org/rocker-versioned2/issues/144) as well the GHA support for M1 (https://github.com/actions/runner-images/issues/2187).

Adafede commented 1 year ago

Everything cristal clear, thank you for your reply and continuous efforts!

In case the r-base image already offers support: https://hub.docker.com/_/r-base/tags

almahmoud commented 1 year ago

There is now feasible path to do this with the rocker daily builds for arm64 now available. High level tasks:

almahmoud commented 1 year ago

@Adafede I am happy to inform you that an arm64 image is now available in the Github Container registry at ghcr.io/bioconductor/bioconductor:release_3_16 (with special thanks to @martin-g ). It will be pushed to Dockerhub shortly, but feel free to start using it from the github registry and let us know if you encounter any issues!

Adafede commented 1 year ago

Hey @almahmoud, just gave it a try and it's working! Thank you very much

martin-g commented 1 year ago

Awesome! 🎆

Adafede commented 1 year ago

Oh..finally I maybe was too optimistic. It looks like it was having hidden errors. Actually multiple packages fail to install because of Error in dyn.load(file, DLLpath = DLLpath, ...) :

Maybe something wrong with Rcpp? Happy to post some more detailed logs if needed

(See:

https://github.com/taxonomicallyinformedannotation/tima-r/actions/runs/3928041180/jobs/6715235676#step:7:3696

https://github.com/taxonomicallyinformedannotation/tima-r/actions/runs/3928041180/jobs/6715235676#step:7:3751

https://github.com/taxonomicallyinformedannotation/tima-r/actions/runs/3928041180/jobs/6715235676#step:7:3755

https://github.com/taxonomicallyinformedannotation/tima-r/actions/runs/3928041180/jobs/6715235676#step:7:3814

https://github.com/taxonomicallyinformedannotation/tima-r/actions/runs/3928041180/jobs/6715235676#step:7:3818

https://github.com/taxonomicallyinformedannotation/tima-r/actions/runs/3928041180/jobs/6715235676#step:7:3854

in case )

almahmoud commented 1 year ago

@Adafede I believe that is due to the fact that it's trying to use the binary repo, which is built with the amd64 image. We haven't updated BiocManager::install yet to account for the multi-platform container images as this one is still in its infancy. You can avoid using the binaries in the arm64-based image by setting the env variable BIOCONDUCTOR_USE_CONTAINER_REPOSITORY=FALSE

Adafede commented 1 year ago

Indeed, thank you!

almahmoud commented 1 year ago

Closing this issue as arm64 image is out there on both GHCR and Dockerhub now