forked from StaPH-B/docker-builds
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDockerfile
More file actions
92 lines (80 loc) · 3.26 KB
/
Dockerfile
File metadata and controls
92 lines (80 loc) · 3.26 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
FROM ubuntu:xenial as app
ARG LYVESET_VER="1.1.4f"
LABEL base.image="ubuntu:xenial"
LABEL dockerfile.version="4"
LABEL software="Lyve-SET"
LABEL software.version="1.1.4f"
LABEL description="LYVE-SET, a method of using hqSNPs to create a phylogeny, especially for outbreak investigations"
LABEL website="https://github.com/lskatz/lyve-SET"
LABEL license="https://github.com/lskatz/lyve-SET/blob/master/LICENSE"
LABEL maintainer="Kelsey Florek"
LABEL maintainer.email="kelsey.florek@slh.wisc.edu"
LABEL maintainer2="Curtis Kapsak"
LABEL maintainer2.email="kapsakcj@gmail.com"
LABEL maintainer3="Erik Wolfsohn"
LABEL maintainer3.email="ewolfsohn@gmail.com"
#run apt in noninteractive mode so it can't prompt for input
ENV DEBIAN_FRONTEND noninteractive
#update apt from closest mirrors
RUN echo 'deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-security main restricted universe multiverse' | cat - /etc/apt/sources.list > temp && mv temp /etc/apt/sources.list &&\
echo 'deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-backports main restricted universe multiverse' | cat - /etc/apt/sources.list > temp && mv temp /etc/apt/sources.list &&\
echo 'deb mirror://mirrors.ubuntu.com/mirrors.txt xenial-updates main restricted universe multiverse' | cat - /etc/apt/sources.list > temp && mv temp /etc/apt/sources.list &&\
echo 'deb mirror://mirrors.ubuntu.com/mirrors.txt xenial main restricted universe multiverse' | cat - /etc/apt/sources.list > temp && mv temp /etc/apt/sources.list
RUN apt update && apt-get install -y \
curl \
perl \
libfile-slurp-perl \
default-jre \
bioperl \
wget \
libz-dev \
git \
libncurses5-dev \
libncursesw5-dev \
build-essential \
ncbi-blast+ \
libsvn-perl \
subversion \
libsvn1 \
automake1.11 \
libpthread-stubs0-dev \
cpanminus \
mpich \
clang \
libssl-dev \
libio-socket-ssl-perl \
libxml-simple-perl \
unzip \
smalt \
python3 &&\
apt-get clean && apt-get autoclean && \
rm -rf /var/lib/apt/lists/*
RUN mkdir /edirect && \
perl -MNet::FTP -e '$ftp = new Net::FTP("ftp.ncbi.nlm.nih.gov", Passive => 1);$ftp->login; $ftp->binary;$ftp->get("/entrez/entrezdirect/edirect.tar.gz");' && \
gunzip -c edirect.tar.gz | tar xf - && \
mv -v /edirect/* /usr/local/bin && \
rm edirect.tar.gz
# install missing xtract executable required by efetch
RUN wget https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/xtract.Linux.gz && \
gunzip -f xtract.Linux.gz && \
mv -v xtract.Linux /usr/local/bin/xtract && \
chmod +x /usr/local/bin/xtract
#get lyveset files
RUN wget https://github.com/lskatz/lyve-SET/archive/v${LYVESET_VER}.tar.gz &&\
tar -xzvf v${LYVESET_VER}.tar.gz &&\
rm v${LYVESET_VER}.tar.gz &&\
mv lyve-SET-${LYVESET_VER} lyve-SET
# download perl modules, setup the lyveset filesystem
RUN cpanm Test::Most Bio::FeatureIO String::Escape File::Slurp URI::Escape Math::Round Schedule::SGE --force
RUN make -C /lyve-SET install -e PREFIX=/lyve-SET &&\
make -C /lyve-SET env -e PREFIX=/lyve-SET
RUN make -C /lyve-SET clean-edirect
# set PATH and locale settings for singularity compatibility
ENV PATH="/lyve-SET:\
/lyve-SET/scripts:\
/edirect:\
${PATH}"\
LC_ALL=C
WORKDIR /data
FROM app as test
RUN set_test.pl --numcpus 4 lambda lambda