-
Notifications
You must be signed in to change notification settings - Fork 3
/
Dockerfile
64 lines (49 loc) · 1.6 KB
/
Dockerfile
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
FROM rust:slim AS builder
COPY . /nohuman
WORKDIR /nohuman
RUN apt update \
&& apt install -y musl-tools libssl-dev pkg-config \
&& cargo build --release \
&& strip target/release/nohuman
FROM ubuntu:jammy as kraken
# for easy upgrade later. ARG variables only persist during build time.
ARG K2VER="2.1.3"
LABEL base.image="ubuntu:jammy"
LABEL dockerfile.version="2"
LABEL software="Kraken2"
LABEL software.version="${K2VER}"
LABEL description="Taxonomic sequence classifier"
LABEL website="https://github.com/DerrickWood/kraken2"
LABEL license="https://github.com/DerrickWood/kraken2/blob/master/LICENSE"
LABEL maintainer="Curtis Kapsak"
LABEL maintainer.email="[email protected]"
LABEL maintainer2="Erin Young"
LABEL maintainer2.email="[email protected]"
# install dependencies and cleanup apt garbage
RUN apt-get update && apt-get -y --no-install-recommends install \
wget \
ca-certificates \
zlib1g-dev \
make \
g++ \
rsync \
cpanminus \
ncbi-blast+ && \
rm -rf /var/lib/apt/lists/* && apt-get autoclean
# perl module required for kraken2-build
RUN cpanm Getopt::Std
# DL Kraken2, unpack, and install
RUN wget https://github.com/DerrickWood/kraken2/archive/v${K2VER}.tar.gz && \
tar -xzf v${K2VER}.tar.gz && \
rm -rf v${K2VER}.tar.gz && \
cd kraken2-${K2VER} && \
./install_kraken2.sh /bin
FROM ubuntu:jammy
COPY --from=builder /nohuman/target/release/nohuman /bin/
COPY --from=kraken /bin/kraken2* /bin/
RUN nohuman --version
# print help and versions
RUN kraken2 --help && \
kraken2-build --help && \
kraken2 --version
ENTRYPOINT [ "nohuman" ]