Mercurial > repos > galaxytrakr > cfsan2snp2
annotate Dockerfile @ 10:ec50b4ed004c draft
planemo upload commit 73945687c1471741694cf99bbcdb8465ab5110f6
| author | galaxytrakr |
|---|---|
| date | Thu, 19 Mar 2026 13:32:08 +0000 |
| parents | 0bf7e9b50206 |
| children | 2f515550dc87 |
| rev | line source |
|---|---|
|
0
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
1 # ========================= |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
2 # CSP2 for Galaxy/AWS Batch (offline Nextflow) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
3 # ========================= |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
4 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
5 # ---------- Build stage ---------- |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
6 FROM ubuntu:focal AS build |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
7 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
8 ARG DEBIAN_FRONTEND=noninteractive |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
9 ARG CSP2_VER="0.9.0" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
10 ARG BEDTOOLS_VER="2.31.1" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
11 ARG MUMMER_VER="4.0.0" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
12 ARG SKESA_VER="2.4.0" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
13 ARG MASH_VER="2.3" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
14 ARG BBMAP_VER="38.90" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
15 ARG PYTHON_VER="3.8" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
16 ARG SOURCEFORGE_MIRROR="psychz" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
17 ARG IQTREE_VER="2.0.6" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
18 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
19 # Use a stable working directory |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
20 WORKDIR /workspace |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
21 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
22 # Base build deps (include Java to verify/prewarm Nextflow here) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
23 RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
24 tzdata gpg-agent software-properties-common build-essential \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
25 zlib1g-dev libghc-bzlib-dev liblzma-dev wget ca-certificates \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
26 cmake curl git xz-utils openjdk-17-jre-headless \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
27 && rm -rf /var/lib/apt/lists/* |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
28 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
29 # Python venv for runtime tools |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
30 RUN add-apt-repository 'ppa:deadsnakes/ppa' && apt-get update && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
31 apt-get install -y --no-install-recommends \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
32 python${PYTHON_VER} python${PYTHON_VER}-dev python${PYTHON_VER}-venv \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
33 && python${PYTHON_VER} -m venv --copies /opt/venv \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
34 && rm -rf /var/lib/apt/lists/* |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
35 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
36 ENV PATH="/opt/venv/bin:${PATH}" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
37 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
38 # Core Python packages |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
39 RUN pip install --no-cache-dir -U \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
40 pandas~=1.2.0 pybedtools refchooser scikit-learn |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
41 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
42 # ---- Fetch sources/artifacts ---- |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
43 # bedtools |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
44 ADD https://github.com/arq5x/bedtools2/archive/refs/tags/v${BEDTOOLS_VER}.tar.gz . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
45 # mummer |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
46 ADD https://github.com/mummer4/mummer/releases/download/v${MUMMER_VER}rc1/mummer-${MUMMER_VER}rc1.tar.gz . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
47 # skesa prebuilt bins |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
48 ADD https://github.com/ncbi/SKESA/releases/download/${SKESA_VER}/skesa.centos.7.7 . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
49 ADD https://github.com/ncbi/SKESA/releases/download/${SKESA_VER}/gfa_connector.centos7.7 . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
50 ADD https://github.com/ncbi/SKESA/releases/download/${SKESA_VER}/kmercounter.centos7.7 . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
51 # mash |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
52 ADD https://github.com/marbl/Mash/releases/download/v${MASH_VER}/mash-Linux64-v${MASH_VER}.tar . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
53 # iqtree2 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
54 ADD https://github.com/Cibiv/IQ-TREE/releases/download/v${IQTREE_VER}/iqtree-${IQTREE_VER}-Linux.tar.gz . |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
55 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
56 # ---- Build/install tools into /usr/local ---- |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
57 # bedtools |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
58 RUN tar -xzf v${BEDTOOLS_VER}.tar.gz && rm v${BEDTOOLS_VER}.tar.gz && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
59 cd bedtools2-${BEDTOOLS_VER} && make -j && make install |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
60 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
61 # Install MUMmer and copy Perl modules where dnadiff expects them |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
62 RUN tar -xvf mummer-${MUMMER_VER}rc1.tar.gz && rm mummer-${MUMMER_VER}rc1.tar.gz && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
63 cd mummer-${MUMMER_VER}rc1 && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
64 ./configure --prefix=/usr/local && make -j && make install && ldconfig && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
65 mkdir -p /usr/local/lib/mummer && cp -a scripts/*.pm /usr/local/lib/mummer/ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
66 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
67 # skesa tools (rename and install) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
68 RUN install -m 0755 skesa.centos.7.7 /usr/local/bin/skesa && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
69 install -m 0755 gfa_connector.centos7.7 /usr/local/bin/gfa_connector && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
70 install -m 0755 kmercounter.centos7.7 /usr/local/bin/kmercounter |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
71 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
72 # mash |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
73 RUN tar -xvf mash-Linux64-v${MASH_VER}.tar && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
74 install -m 0755 mash-Linux64-v${MASH_VER}/mash /usr/local/bin/mash |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
75 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
76 # bbmap (grab all scripts/binaries) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
77 RUN wget -O BBMap_${BBMAP_VER}.tar.gz \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
78 "https://sourceforge.net/projects/bbmap/files/BBMap_${BBMAP_VER}.tar.gz/download?use_mirror=${SOURCEFORGE_MIRROR}" && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
79 tar -xvf BBMap_${BBMAP_VER}.tar.gz && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
80 cp -a bbmap/* /usr/local/bin/ && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
81 rm -rf bbmap BBMap_${BBMAP_VER}.tar.gz |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
82 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
83 # iqtree2 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
84 RUN tar -xzf iqtree-${IQTREE_VER}-Linux.tar.gz && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
85 install -m 0755 iqtree-${IQTREE_VER}-Linux/bin/iqtree2 /usr/local/bin/iqtree && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
86 rm -rf iqtree-${IQTREE_VER}-Linux iqtree-${IQTREE_VER}-Linux.tar.gz |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
87 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
88 # choose a version |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
89 ARG NXF_VER="25.04.7" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
90 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
91 # install that exact launcher & prewarm framework into /opt/nextflow |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
92 RUN curl -fsSL -o /usr/local/bin/nextflow \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
93 "https://github.com/nextflow-io/nextflow/releases/download/v${NXF_VER}/nextflow" \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
94 && chmod 0755 /usr/local/bin/nextflow \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
95 && mkdir -p /opt/nextflow \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
96 && chmod -R a+rwX /opt/nextflow \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
97 && NXF_HOME=/opt/nextflow NXF_OFFLINE=false NXF_VER=${NXF_VER} /usr/local/bin/nextflow -version \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
98 && ls -l /usr/local/bin/nextflow |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
99 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
100 # ---------- Runtime stage ---------- |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
101 FROM ubuntu:focal AS runtime |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
102 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
103 ARG DEBIAN_FRONTEND=noninteractive |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
104 ARG CSP2_VER="0.9.0" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
105 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
106 # Python venv for runtime tools |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
107 # Lean runtime libs + Python3.8 + Perl (no PPAs) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
108 RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
109 ca-certificates openjdk-17-jre-headless bash tzdata perl perl-modules-5.30 \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
110 libgomp1 liblzma5 zlib1g libbz2-1.0 coreutils make curl gawk \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
111 python3.8 python3.8-venv python3.8-distutils \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
112 && rm -rf /var/lib/apt/lists/* |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
113 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
114 # Bring over tools and Python venv |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
115 COPY --from=build /usr/local/bin/ /usr/local/bin/ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
116 COPY --from=build /usr/local/libexec/mummer /usr/local/libexec/mummer |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
117 COPY --from=build /usr/local/share/ /usr/local/share/ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
118 COPY --from=build /opt/venv /opt/venv |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
119 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
120 # Bring over Nextflow launcher and baked framework cache |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
121 COPY --from=build /usr/local/bin/nextflow /usr/local/bin/nextflow |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
122 COPY --from=build /opt/nextflow /opt/nextflow |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
123 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
124 # Ensure any UID (Galaxy user) can execute nextflow and write minimal state into the cache |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
125 RUN chmod 0755 /usr/local/bin/nextflow \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
126 && chmod -R a+rwX /opt/nextflow |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
127 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
128 # Bring the modules into the runtime image (if not already) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
129 COPY --from=build /usr/local/lib/mummer /usr/local/lib/mummer |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
130 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
131 # Bring MUMmer shared libs into the runtime image |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
132 COPY --from=build /usr/local/lib /usr/local/lib |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
133 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
134 # Make sure dynamic linker can find them |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
135 RUN ldconfig || true |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
136 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
137 # Belt-and-suspenders for minimal images |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
138 ENV LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH}" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
139 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
140 # Permissions: allow any UID to read/execute the libs |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
141 RUN chmod -R a+rX /usr/local/lib |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
142 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
143 # Make modules readable by any UID; create compatibility symlink if needed |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
144 RUN chmod -R a+rX /usr/local/lib/mummer /usr/local/libexec/mummer && \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
145 test -d /usr/local/lib/mummer || ln -s /usr/local/libexec/mummer /usr/local/lib/mummer |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
146 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
147 # Ensure the common mummer executables are executable by all |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
148 RUN chmod 0755 /usr/local/bin/dnadiff /usr/local/bin/nucmer /usr/local/bin/promer /usr/local/bin/show-snps || true |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
149 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
150 # Help Perl find modules regardless of layout |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
151 ENV PERL5LIB="/usr/local/lib/mummer:/usr/local/libexec/mummer:/usr/local/share/mummer:${PERL5LIB}" |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
152 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
153 # Runtime environment |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
154 ENV PATH="/opt/venv/bin:/usr/local/bin:${PATH}" \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
155 LC_ALL=C \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
156 NXF_HOME=/opt/nextflow \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
157 NXF_OFFLINE=true \ |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
158 CSP2_VER=${CSP2_VER} |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
159 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
160 # Install the CSP2 pipeline under /opt/csp2 (avoid /app which Galaxy mounts) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
161 WORKDIR /opt/csp2 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
162 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
163 # Copy your pipeline (these paths must exist in the build context) |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
164 COPY bin ./bin |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
165 COPY conf ./conf |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
166 COPY subworkflows ./subworkflows |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
167 COPY CSP2.nf ./CSP2.nf |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
168 COPY nextflow.config ./nextflow.config |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
169 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
170 # permissions for arbitrary UID |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
171 RUN chmod -R a+rX /opt/csp2 && chmod -R a+rX /opt/nextflow |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
172 |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
173 # IMPORTANT: No ENTRYPOINT for Galaxy/AWS Batch. Neutral CMD. |
|
8e7a84e62b43
planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff
changeset
|
174 CMD ["/bin/bash"] |
