forked from soedinglab/MMseqs2-App
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.backend
44 lines (35 loc) · 1.61 KB
/
Dockerfile.backend
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
FROM --platform=$BUILDPLATFORM golang:latest as builder
ARG TARGETARCH
WORKDIR /opt/build
ADD backend .
RUN GOOS=linux GOARCH=$TARGETARCH go build -o mmseqs-web
ADD https://mmseqs.com/latest/mmseqs-linux-avx2.tar.gz .
ADD https://mmseqs.com/latest/mmseqs-linux-sse41.tar.gz .
ADD https://mmseqs.com/latest/mmseqs-linux-sse2.tar.gz .
ADD https://mmseqs.com/latest/mmseqs-linux-arm64.tar.gz .
ADD https://mmseqs.com/foldseek/foldseek-linux-avx2.tar.gz .
ADD https://mmseqs.com/foldseek/foldseek-linux-sse41.tar.gz .
ADD https://mmseqs.com/foldseek/foldseek-linux-sse2.tar.gz .
ADD https://mmseqs.com/foldseek/foldseek-linux-arm64.tar.gz .
ADD https://raw.githubusercontent.com/soedinglab/MMseqs2/678c82ac44f1178bf9a3d49bfab9d7eed3f17fbc/util/mmseqs_wrapper.sh binaries/mmseqs
RUN mkdir binaries; \
if [ "$TARGETARCH" = "arm64" ]; then \
for i in mmseqs foldseek; do \
cat ${i}-linux-arm64.tar.gz | tar -xzvf- ${i}/bin/${i}; \
mv ${i}/bin/${i} binaries/${i}; \
done; \
else \
for i in mmseqs foldseek; do \
for j in sse2 sse41 avx2; do \
cat ${i}-linux-${j}.tar.gz | tar -xzvf- ${i}/bin/${i}; \
mv ${i}/bin/${i} binaries/${i}_${j}; \
done; \
done; \
sed 's|mmseqs|foldseek|g' binaries/mmseqs > binaries/foldseek; \
fi;
RUN chmod -R +x binaries
FROM debian:stable-slim
LABEL maintainer="Milot Mirdita <[email protected]>"
RUN apt-get update && apt-get install -y ca-certificates wget aria2 && rm -rf /var/lib/apt/lists/*
COPY --from=builder /opt/build/mmseqs-web /opt/build/binaries/* /usr/local/bin/
ENTRYPOINT ["/usr/local/bin/mmseqs-web"]