1
+ # BASE IMAGE, Stage 1 #########################################################################################################
2
+
3
+ FROM ubuntu:20.04 AS build
4
+
5
+ RUN apt-get update --fix-missing && apt-get install -y sudo apt-utils --fix-missing
6
+ RUN sudo apt-get update --fix-missing && sudo apt-get install -y wget gcc --fix-missing
7
+
8
+ RUN groupadd --gid 1000 patchwork \
9
+ && useradd --uid 1000 --gid patchwork --shell /bin/bash --create-home patchwork \
10
+ && chmod -R a+rwx /home/patchwork
11
+ WORKDIR /home/patchwork
12
+ USER patchwork
13
+ ENV VERSION 0.5.2
14
+
15
+ RUN wget https://julialang-s3.julialang.org/bin/linux/x64/1.8/julia-1.8.3-linux-x86_64.tar.gz \
16
+ && tar xzvf julia-1.8.3-linux-x86_64.tar.gz
17
+ RUN wget http://github.com/bbuchfink/diamond/releases/download/v2.0.13/diamond-linux64.tar.gz \
18
+ && tar xvzf diamond-linux64.tar.gz
19
+ ENV PATH /home/patchwork/julia-1.8.3/bin:$PATH
20
+ RUN wget https://github.com/fethalen/Patchwork/archive/v$VERSION.tar.gz \
21
+ && tar xvzf v$VERSION.tar.gz && cd Patchwork-$VERSION \
22
+ && julia --project=. -e "import Pkg; Pkg.instantiate()" \
23
+ && julia --project=. src/compile.jl . src/precompiled.jl ../patchwork-$VERSION
24
+
25
+
26
+ # To reduce the final image size, use a multi-stage build:
27
+ # The final image doesn't contain a Julia installation, just Ubuntu as base image, the Patchwork binary and DIAMOND.
28
+
29
+ # BASE IMAGE, Stage 2 #########################################################################################################
30
+
31
+ FROM ubuntu:20.04
32
+
33
+ # METADATA ####################################################################################################################
34
+
35
+ LABEL base_image="ubuntu:20.04"
36
+ LABEL version="1"
37
+ LABEL software="Patchwork"
38
+ LABEL software.version="0.5.2"
39
+ LABEL about.author=
"Felix Thalén <[email protected] >"
40
+ LABEL about.summary="Alignment-based Exon Retrieval and Concatenation with Phylogenomic Applications"
41
+ LABEL about.home="https://github.com/fethalen/Patchwork"
42
+ LABEL about.documentation="https://github.com/fethalen/Patchwork#readme"
43
+ LABEL about.license="SPDX:GPL-3.0"
44
+ LABEL about.license_file="https://github.com/fethalen/Patchwork/blob/main/LICENSE"
45
+ LABEL about.tags="phylogenomics"
46
+
47
+ # MAINTAINER ##################################################################################################################
48
+
49
+ # MAINTAINER Felix Thalén <[email protected] >
50
+
51
+ # BUILD #######################################################################################################################
52
+
53
+ RUN groupadd --gid 1000 patchwork \
54
+ && useradd --uid 1000 --gid patchwork --shell /bin/bash --create-home patchwork \
55
+ && chmod -R a+rwx /home/patchwork
56
+ WORKDIR /home/patchwork
57
+ USER patchwork
58
+ ENV VERSION 0.5.2
59
+
60
+ COPY --from=build /home/patchwork/patchwork-$VERSION patchwork-$VERSION
61
+ COPY --from=build /home/patchwork/diamond diamond
62
+ RUN ln -s patchwork-$VERSION/bin/patchwork patchwork
63
+ ENV PATH /home/patchwork:$PATH
64
+
65
+ CMD patchwork --help
0 commit comments