Dockerfile 1.99 KB
Newer Older
1 2
# This is a Dockerfile to run eHive scripts (init_pipeline.pl, beekeeper.pl, runWorker.pl) in a container
#
3
## Build the image
4 5
# docker build -t ensembl-hive .
#
6 7 8
## Check that the test-suite works (guest_language.t is expected to fail
# docker run -e EHIVE_TEST_PIPELINE_URLS=sqlite:/// ensembl-hive prove -r /repo/ensembl-hive/t
#
9 10 11 12 13 14 15
## Open a session in a new container (will run bash)
# docker run -it ensembl-hive
#
## Initialize and run a pipeline
# docker run -it ensembl-hive init_pipeline.pl Bio::EnsEMBL::Hive::Examples::LongMult::PipeConfig::LongMult_conf -pipeline_url $URL
# docker run -it ensembl-hive beekeeper.pl -url $URL -loop -sleep 0.2
# docker run -it ensembl-hive runWorker.pl -url $URL
16 17 18 19 20


FROM ubuntu:16.04

RUN apt-get update -y \
21 22 23 24 25 26 27 28 29 30
                       # Needed to clone the checkout and use cpanm
 && apt-get install -y cpanminus git build-essential \
		       # Database-related dependencies
                       sqlite3 libdbd-sqlite3-perl postgresql-client libdbd-pg-perl mysql-client libdbd-mysql-perl libdbi-perl \
		       # Required Perl modules
		       libcapture-tiny-perl libdatetime-perl libhtml-parser-perl libjson-perl \
		       # Perl modules needed for the test-suite
		       libtest-exception-perl libtest-simple-perl libtest-warn-perl libtest-warnings-perl libtest-file-contents-perl libtest-perl-critic-perl libgraphviz-perl \
		       # Recommendations
		       libgetopt-argvfile-perl libchart-gnuplot-perl libbsd-resource-perl \
31 32
 && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

33 34
## Useful for debugging
# RUN apt-get install netcat.openbsd vim perl-doc iputils-ping net-tools apt-file -y
35 36 37

RUN ln -s /usr/bin/mariadb_config /usr/bin/mysql_config

38
RUN mkdir /repo && git clone -b master https://github.com/Ensembl/ensembl-hive.git /repo/ensembl-hive
39

40
# Install the missing dependencies (if any)
41 42
RUN cpanm --installdeps --with-recommends /repo/ensembl-hive

43 44
ENV PATH "/repo/ensembl-hive/scripts:$PATH"
ENV PERL5LIB "/repo/ensembl-hive/modules:$PERL5LIB"
45 46

CMD [ "/bin/bash" ]