annotate Dockerfile @ 0:8e7a84e62b43 draft

planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
author galaxytrakr
date Fri, 13 Mar 2026 21:22:16 +0000
parents
children ea58bc28a64f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
44 # bedtools
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
45 ADD https://github.com/arq5x/bedtools2/archive/refs/tags/v${BEDTOOLS_VER}.tar.gz .
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
46 # mummer
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
47 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
48 # skesa prebuilt bins
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
49 ADD https://github.com/ncbi/SKESA/releases/download/${SKESA_VER}/skesa.centos.7.7 .
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
50 ADD https://github.com/ncbi/SKESA/releases/download/${SKESA_VER}/gfa_connector.centos7.7 .
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
51 ADD https://github.com/ncbi/SKESA/releases/download/${SKESA_VER}/kmercounter.centos7.7 .
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
52 # mash
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
53 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
54 # iqtree2
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
55 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
56
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
57 # ---- Build/install tools into /usr/local ----
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
58 # bedtools
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
59 RUN tar -xzf v${BEDTOOLS_VER}.tar.gz && rm v${BEDTOOLS_VER}.tar.gz && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
60 cd bedtools2-${BEDTOOLS_VER} && make -j && make install
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
61
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
62 # Install MUMmer and copy Perl modules where dnadiff expects them
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
63 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
64 cd mummer-${MUMMER_VER}rc1 && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
65 ./configure --prefix=/usr/local && make -j && make install && ldconfig && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
66 mkdir -p /usr/local/lib/mummer && cp -a scripts/*.pm /usr/local/lib/mummer/
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
67
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
68 # skesa tools (rename and install)
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
69 RUN install -m 0755 skesa.centos.7.7 /usr/local/bin/skesa && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
70 install -m 0755 gfa_connector.centos7.7 /usr/local/bin/gfa_connector && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
71 install -m 0755 kmercounter.centos7.7 /usr/local/bin/kmercounter
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
72
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
73 # mash
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
74 RUN tar -xvf mash-Linux64-v${MASH_VER}.tar && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
75 install -m 0755 mash-Linux64-v${MASH_VER}/mash /usr/local/bin/mash
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
76
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
77 # bbmap (grab all scripts/binaries)
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
78 RUN wget -O BBMap_${BBMAP_VER}.tar.gz \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
79 "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
80 tar -xvf BBMap_${BBMAP_VER}.tar.gz && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
81 cp -a bbmap/* /usr/local/bin/ && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
82 rm -rf bbmap BBMap_${BBMAP_VER}.tar.gz
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
83
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
84 # iqtree2
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
85 RUN tar -xzf iqtree-${IQTREE_VER}-Linux.tar.gz && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
86 install -m 0755 iqtree-${IQTREE_VER}-Linux/bin/iqtree2 /usr/local/bin/iqtree && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
87 rm -rf iqtree-${IQTREE_VER}-Linux iqtree-${IQTREE_VER}-Linux.tar.gz
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
88
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
89 # choose a version
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
90 ARG NXF_VER="25.04.7"
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
91
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
92 # install that exact launcher & prewarm framework into /opt/nextflow
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
93 RUN curl -fsSL -o /usr/local/bin/nextflow \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
94 "https://github.com/nextflow-io/nextflow/releases/download/v${NXF_VER}/nextflow" \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
95 && chmod 0755 /usr/local/bin/nextflow \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
96 && mkdir -p /opt/nextflow \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
97 && chmod -R a+rwX /opt/nextflow \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
98 && 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
99 && ls -l /usr/local/bin/nextflow
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
100
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
101 # ---------- Runtime stage ----------
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
102 FROM ubuntu:focal AS runtime
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
103
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
104 ARG DEBIAN_FRONTEND=noninteractive
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
105 ARG CSP2_VER="0.9.0"
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
106
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
107 # Python venv for runtime tools
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
108 # Lean runtime libs + Python3.8 + Perl (no PPAs)
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
109 RUN apt-get update && apt-get install -y --no-install-recommends \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
110 ca-certificates openjdk-17-jre-headless bash tzdata perl perl-modules-5.30 \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
111 libgomp1 liblzma5 zlib1g libbz2-1.0 coreutils make curl gawk \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
112 python3.8 python3.8-venv python3.8-distutils \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
113 && rm -rf /var/lib/apt/lists/*
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
114
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
115 # Bring over tools and Python venv
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
116 COPY --from=build /usr/local/bin/ /usr/local/bin/
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
117 COPY --from=build /usr/local/libexec/mummer /usr/local/libexec/mummer
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
118 COPY --from=build /usr/local/share/ /usr/local/share/
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
119 COPY --from=build /opt/venv /opt/venv
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
120
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
121 # Bring over Nextflow launcher and baked framework cache
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
122 COPY --from=build /usr/local/bin/nextflow /usr/local/bin/nextflow
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
123 COPY --from=build /opt/nextflow /opt/nextflow
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
124
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
125 # Ensure any UID (Galaxy user) can execute nextflow and write minimal state into the cache
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
126 RUN chmod 0755 /usr/local/bin/nextflow \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
127 && chmod -R a+rwX /opt/nextflow
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
128
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
129 # Bring the modules into the runtime image (if not already)
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
130 COPY --from=build /usr/local/lib/mummer /usr/local/lib/mummer
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
131
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
132 # Bring MUMmer shared libs into the runtime image
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
133 COPY --from=build /usr/local/lib /usr/local/lib
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
134
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
135 # Make sure dynamic linker can find them
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
136 RUN ldconfig || true
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
137
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
138 # Belt-and-suspenders for minimal images
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
139 ENV LD_LIBRARY_PATH="/usr/local/lib:${LD_LIBRARY_PATH}"
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
140
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
141 # Permissions: allow any UID to read/execute the libs
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
142 RUN chmod -R a+rX /usr/local/lib
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
143
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
144 # Make modules readable by any UID; create compatibility symlink if needed
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
145 RUN chmod -R a+rX /usr/local/lib/mummer /usr/local/libexec/mummer && \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
146 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
147
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
148 # Ensure the common mummer executables are executable by all
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
149 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
150
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
151 # Help Perl find modules regardless of layout
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
152 ENV PERL5LIB="/usr/local/lib/mummer:/usr/local/libexec/mummer:/usr/local/share/mummer:${PERL5LIB}"
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
153
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
154 # Runtime environment
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
155 ENV PATH="/opt/venv/bin:/usr/local/bin:${PATH}" \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
156 LC_ALL=C \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
157 NXF_HOME=/opt/nextflow \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
158 NXF_OFFLINE=true \
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
159 CSP2_VER=${CSP2_VER}
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
160
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
161 # Install the CSP2 pipeline under /opt/csp2 (avoid /app which Galaxy mounts)
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
162 WORKDIR /opt/csp2
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
163
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
164 # Copy your pipeline (these paths must exist in the build context)
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
165 COPY bin ./bin
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
166 COPY conf ./conf
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
167 COPY subworkflows ./subworkflows
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
168 COPY CSP2.nf ./CSP2.nf
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
169 COPY nextflow.config ./nextflow.config
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
170
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
171 # permissions for arbitrary UID
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
172 RUN chmod -R a+rX /opt/csp2 && chmod -R a+rX /opt/nextflow
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
173
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
174 # IMPORTANT: No ENTRYPOINT for Galaxy/AWS Batch. Neutral CMD.
8e7a84e62b43 planemo upload commit e734452c606dba89b6fe58c90c5f38e5ea067edd
galaxytrakr
parents:
diff changeset
175 CMD ["/bin/bash"]