annotate Dockerfile @ 1:ea58bc28a64f draft

planemo upload commit c57d3d891ef37fbeab5d081cbc33d95ab7670686
author galaxytrakr
date Fri, 13 Mar 2026 21:26:54 +0000
parents 8e7a84e62b43
children dcd06ca636af
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 # 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"]