BioJulia / Bio.jl

[DEPRECATED] Bioinformatics and Computational Biology Infrastructure for Julia
http://biojulia.dev
MIT License
261 stars 65 forks source link

Installing BioJulia using Docker #479

Closed bicycle1885 closed 5 years ago

bicycle1885 commented 7 years ago

I recently found Docker is a great solution to install, deploy, and test applications using BioJulia. So I made a repository that offers a Docker file to build a BioJulia image: https://github.com/bicycle1885/docker-biojulia. Phylogenies.jl is not included just because it seems not to support Julia 0.6 at the moment.

I'd like to create an official Docker image for BioJulia. Also, Docker would be useful for long-running tests and benchmarks.

pwl commented 7 years ago

Having an official Bio.jl docker image would be very useful, so far I have been using a very simple docker image

FROM julia:0.5.2

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
    git cmake zlib1g libhdf5-dev build-essential wget unzip && \
    rm -rf /var/lib/apt/lists/*

RUN julia -e 'Pkg.clone("Bio"); using Bio'

ENTRYPOINT ["julia"]

I would be happy to replace it with something more standardized. Just a thought on your docker file, with longer stretches of Julia code it might be easier to write a script install.jl and run it with RUN julia install.jl. It might also be useful to add an entry point as above, if the only purpose of the image is to run julia.

kescobo commented 7 years ago

The more time goes on, the more I'm convinced that Docker solutions are the future for computational biology. Definitely 👍 on having something like this for Bio.jl.

bicycle1885 commented 7 years ago

I'm not sure what would be the best practice of Dockerfile, but the current RUN command in the script will be replaced with more sophisticated tools like Pkg3. So, think it as a temporary measure to install BioJulia packages.

I have no idea whether we should have ENTRYPOINT. If we don't know what people want to do, I think it is better not to have ENTRYPOINT in Dockerfile, isn't it?

kdm9 commented 7 years ago

@bicycle1885 One can easily override the entrypoint when running docker run, so i'd set it as /usr/bin/julia or whatever the path to the julia ELF is...

bicycle1885 commented 7 years ago

Thank you all for your advice. I made a trial image here, so you can try it immediately as:

$ docker pull bicycle1885/biojulia:0.1.0  # pull the image
...
$ docker run -it --rm biojulia -q
julia> using BioSequences

julia> dna"ACGT"
4nt DNA Sequence:
ACGT

I will move the repository to the BioJulia org. once it's ready for users.