@@ -21,21 +21,21 @@ SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]
2121# zlib1g-dev: for building VCFtools and pyfastx; may be used by package managers to build from source
2222# nodejs: for installing Auspice
2323RUN apt-get update && apt-get install -y --no-install-recommends \
24- autoconf \
25- automake \
26- build-essential \
27- ca-certificates \
28- curl \
29- git \
30- jq \
31- libsqlite3-dev \
32- pkg-config \
33- zlib1g-dev
24+ autoconf \
25+ automake \
26+ build-essential \
27+ ca-certificates \
28+ curl \
29+ git \
30+ jq \
31+ libsqlite3-dev \
32+ pkg-config \
33+ zlib1g-dev
3434
3535# Install a specific Node.js version
3636# https://github.com/nodesource/distributions/blob/0d81da75/README.md#installation-instructions
3737RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \
38- && apt-get update && apt-get install -y nodejs
38+ && apt-get update && apt-get install -y nodejs
3939
4040# Used for platform-specific instructions
4141ARG TARGETPLATFORM
@@ -70,17 +70,17 @@ RUN curl -fsSL https://api.github.com/repos/nextstrain/standard-RAxML/tarball/46
7070WORKDIR /build/FastTree
7171RUN curl -fsSL https://api.github.com/repos/tsibley/FastTree/tarball/50c5b098ea085b46de30bfc29da5e3f113353e6f \
7272 | tar xzvpf - --no-same-owner --strip-components=1 \
73- && make FastTreeDblMP \
74- && cp -p FastTreeDblMP /final/bin
73+ && make FastTreeDblMP \
74+ && cp -p FastTreeDblMP /final/bin
7575
7676# Build vcftools
7777WORKDIR /build/vcftools
7878RUN curl -fsSL https://github.com/vcftools/vcftools/releases/download/v0.1.16/vcftools-0.1.16.tar.gz \
7979 | tar xzvpf - --no-same-owner --strip-components=2 \
80- && ./configure --prefix=$PWD/built \
81- && make && make install \
82- && cp -rp built/bin/* /final/bin \
83- && cp -rp built/share/* /final/share
80+ && ./configure --prefix=$PWD/built \
81+ && make && make install \
82+ && cp -rp built/bin/* /final/bin \
83+ && cp -rp built/share/* /final/share
8484
8585
8686# 2. Download pre-built programs
@@ -93,8 +93,8 @@ RUN curl -fsSL https://github.com/vcftools/vcftools/releases/download/v0.1.16/vc
9393WORKDIR /download/mafft
9494RUN curl -fsSL https://mafft.cbrc.jp/alignment/software/mafft-7.520-linux.tgz \
9595 | tar xzvpf - --no-same-owner --strip-components=2 mafft-linux64/mafftdir/ \
96- && cp -p bin/* /final/bin \
97- && cp -p libexec/* /final/libexec
96+ && cp -p bin/* /final/bin \
97+ && cp -p libexec/* /final/libexec
9898
9999# Download IQ-TREE
100100# NOTE: Running this program requires support for emulation on the Docker host
@@ -104,7 +104,7 @@ RUN curl -fsSL https://mafft.cbrc.jp/alignment/software/mafft-7.520-linux.tgz \
104104WORKDIR /download/IQ-TREE
105105RUN curl -fsSL https://github.com/iqtree/iqtree2/releases/download/v2.2.2.4/iqtree-2.2.2.4-Linux.tar.gz \
106106 | tar xzvpf - --no-same-owner --strip-components=1 \
107- && mv bin/iqtree2 /final/bin/iqtree
107+ && mv bin/iqtree2 /final/bin/iqtree
108108
109109# Download Nextalign v1
110110# NOTE: Running this program requires support for emulation on the Docker host
@@ -123,8 +123,8 @@ RUN curl -fsSL -o /final/bin/nextclade1 https://github.com/nextstrain/nextclade/
123123# if the processor architecture is not amd64.
124124# TODO: Build from source to avoid emulation. Instructions: https://github.com/eBay/tsv-utils/tree/v2.2.0#build-from-source-files
125125RUN curl -L -o tsv-utils.tar.gz https://github.com/eBay/tsv-utils/releases/download/v2.2.0/tsv-utils-v2.2.0_linux-x86_64_ldc2.tar.gz \
126- && tar -x --no-same-owner -v -C /final/bin -z --strip-components 2 --wildcards -f tsv-utils.tar.gz "*/bin/*" \
127- && rm -f tsv-utils.tar.gz
126+ && tar -x --no-same-owner -v -C /final/bin -z --strip-components 2 --wildcards -f tsv-utils.tar.gz "*/bin/*" \
127+ && rm -f tsv-utils.tar.gz
128128
129129# Download csvtk
130130RUN curl -L https://github.com/shenwei356/csvtk/releases/download/v0.25.0/csvtk_${TARGETOS}_${TARGETARCH}.tar.gz | tar xz --no-same-owner -C /final/bin
@@ -162,22 +162,22 @@ RUN curl -fsSL https://github.com/lh3/minimap2/releases/download/v2.26/minimap2-
162162# ¹ https://cvxopt.org/install/#building-and-installing-from-source
163163# ² https://github.com/cvxopt/cvxopt/issues/125#issuecomment-407396491
164164RUN if [[ "$TARGETPLATFORM" == linux/arm64 ]]; then \
165- apt-get update && apt-get install -y --no-install-recommends \
166- libopenblas-dev \
167- libsuitesparse-dev \
168- && CVXOPT_SUITESPARSE_INC_DIR=/usr/include/suitesparse \
169- pip3 install cvxopt \
170- ; \
171- fi
165+ apt-get update && apt-get install -y --no-install-recommends \
166+ libopenblas-dev \
167+ libsuitesparse-dev \
168+ && CVXOPT_SUITESPARSE_INC_DIR=/usr/include/suitesparse \
169+ pip3 install cvxopt \
170+ ; \
171+ fi
172172
173173# Install jaxlib on linux/arm64
174174# jaxlib, an evofr dependency, does not have official pre-built binaries for
175175# linux/arm64. A GitHub user has provided them in a fork repo.
176176# https://github.com/google/jax/issues/7097#issuecomment-1110730040
177177RUN if [[ "$TARGETPLATFORM" == linux/arm64 ]]; then \
178- pip3 install https://github.com/yoziru/jax/releases/download/jaxlib-v0.4.6/jaxlib-0.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl \
179- ; \
180- fi
178+ pip3 install https://github.com/yoziru/jax/releases/download/jaxlib-v0.4.6/jaxlib-0.4.6-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl \
179+ ; \
180+ fi
181181
182182# Install envdir, which is used by pathogen builds
183183RUN pip3 install envdir==1.0.1
@@ -186,8 +186,7 @@ RUN pip3 install envdir==1.0.1
186186RUN pip3 install awscli==1.27.126
187187
188188# Install Snakemake and related optional dependencies.
189- # Pinned to 7.24.1 for stability (2023-03-13)
190- RUN pip3 install snakemake==7.24.1
189+ RUN pip3 install snakemake==7.25.2
191190# Google Cloud Storage package is required for Snakemake to fetch remote files
192191# from Google Storage URIs.
193192RUN pip3 install google-cloud-storage==2.7.0
@@ -225,17 +224,17 @@ COPY builder-scripts/ /builder-scripts/
225224# Download Nextalign v2
226225# Set default Nextalign version to 2
227226RUN curl -fsSL -o /final/bin/nextalign2 https://github.com/nextstrain/nextclade/releases/latest/download/nextalign-$(/builder-scripts/target-triple) \
228- && ln -sv nextalign2 /final/bin/nextalign
227+ && ln -sv nextalign2 /final/bin/nextalign
229228
230229# Download Nextclade v2
231230# Set default Nextclade version to 2
232231RUN curl -fsSL -o /final/bin/nextclade2 https://github.com/nextstrain/nextclade/releases/latest/download/nextclade-$(/builder-scripts/target-triple) \
233- && ln -sv nextclade2 /final/bin/nextclade
232+ && ln -sv nextclade2 /final/bin/nextclade
234233
235234# Fauna
236235WORKDIR /nextstrain/fauna
237236RUN /builder-scripts/download-repo https://github.com/nextstrain/fauna master . \
238- && pip3 install --requirement=requirements.txt
237+ && pip3 install --requirement=requirements.txt
239238
240239# Add Treetime
241240RUN pip3 install phylo-treetime
@@ -246,7 +245,7 @@ RUN pip3 install phylo-treetime
246245# accessible and importable.
247246WORKDIR /nextstrain/augur
248247RUN /builder-scripts/download-repo https://github.com/nextstrain/augur "$(/builder-scripts/latest-augur-release-tag)" . \
249- && pip3 install --editable .
248+ && pip3 install --editable .
250249
251250# Auspice
252251# Install Node deps, build Auspice, and link it into the global search path. A
@@ -257,7 +256,7 @@ RUN /builder-scripts/download-repo https://github.com/nextstrain/augur "$(/build
257256# used for the same reasons described above.
258257WORKDIR /nextstrain/auspice
259258RUN /builder-scripts/download-repo https://github.com/nextstrain/auspice release . \
260- && npm update && npm install && npm run build && npm link
259+ && npm update && npm install && npm run build && npm link
261260
262261# Add evofr for forecasting
263262RUN pip3 install evofr
@@ -288,28 +287,28 @@ SHELL ["/bin/bash", "-e", "-u", "-o", "pipefail", "-c"]
288287# zlib1g: for pyfastx (for Augur)
289288# nodejs: for running Auspice
290289RUN apt-get update && apt-get install -y --no-install-recommends \
291- bzip2 \
292- ca-certificates \
293- curl \
294- dos2unix \
295- gzip \
296- jq \
297- less \
298- libgomp1 \
299- libsqlite3-0 \
300- perl \
301- ruby \
302- util-linux \
303- wget \
304- xz-utils \
305- zip unzip \
306- zlib1g \
307- zstd
290+ bzip2 \
291+ ca-certificates \
292+ curl \
293+ dos2unix \
294+ gzip \
295+ jq \
296+ less \
297+ libgomp1 \
298+ libsqlite3-0 \
299+ perl \
300+ ruby \
301+ util-linux \
302+ wget \
303+ xz-utils \
304+ zip unzip \
305+ zlib1g \
306+ zstd
308307
309308# Install a specific Node.js version
310309# https://github.com/nodesource/distributions/blob/0d81da75/README.md#installation-instructions
311310RUN curl -fsSL https://deb.nodesource.com/setup_14.x | bash - \
312- && apt-get update && apt-get install -y nodejs
311+ && apt-get update && apt-get install -y nodejs
313312
314313# Configure bash for interactive usage
315314COPY bashrc /etc/bash.bashrc
@@ -338,16 +337,16 @@ COPY --from=builder /usr/local/lib/python3.10/site-packages/ /usr/local/lib/pyth
338337# troublesome or excessive.
339338# -trs, 15 June 2018
340339COPY --from=builder \
341- /usr/local/bin/augur \
342- /usr/local/bin/aws \
343- /usr/local/bin/envdir \
344- /usr/local/bin/nextstrain \
345- /usr/local/bin/pangolin \
346- /usr/local/bin/pangolearn.smk \
347- /usr/local/bin/scorpio \
348- /usr/local/bin/snakemake \
349- /usr/local/bin/treetime \
350- /usr/local/bin/
340+ /usr/local/bin/augur \
341+ /usr/local/bin/aws \
342+ /usr/local/bin/envdir \
343+ /usr/local/bin/nextstrain \
344+ /usr/local/bin/pangolin \
345+ /usr/local/bin/pangolearn.smk \
346+ /usr/local/bin/scorpio \
347+ /usr/local/bin/snakemake \
348+ /usr/local/bin/treetime \
349+ /usr/local/bin/
351350
352351# Add installed Node libs
353352COPY --from=builder /usr/lib/node_modules/ /usr/lib/node_modules/
@@ -373,11 +372,11 @@ ENV HOME=/nextstrain
373372
374373# Setup a non-root user for optional use
375374RUN useradd nextstrain \
376- --system \
377- --user-group \
378- --shell /bin/bash \
379- --home-dir /nextstrain \
380- --no-log-init
375+ --system \
376+ --user-group \
377+ --shell /bin/bash \
378+ --home-dir /nextstrain \
379+ --no-log-init
381380
382381# The host should bind mount the pathogen build dir into /nextstrain/build.
383382WORKDIR /nextstrain/build
0 commit comments