From 5f3932388b753a582f42e7c35ce3da074e2c2ce8 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 10:12:00 -0500 Subject: [PATCH 1/7] switch to installing reconstructR from files here instead of repo --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 58127a2..ffd27ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,9 +35,9 @@ RUN R -e "for (lib in c( 'LaplacesDemon', 'kmer', 'phylogram', 'aphid', 'insect' # Rfast in CRAN is broken, install from github RUN R -e "devtools::install_github('RfastOfficial/Rfast', dependencies=TRUE); library(Rfast)" -# Install reconstructR R package -- invalidate cache any time github main branch updates -ADD https://api.github.com/repos/broadinstitute/reconstructR/git/refs/heads/main version.json -RUN R -e "devtools::install_github('broadinstitute/reconstructR', dependencies=TRUE, upgrade='never'); library(reconstructR)" +# Install reconstructR R package +COPY . /opt/reconstructR +RUN R -e "devtools::install_local("/opt/reconstructR", dependencies=TRUE, upgrade='never'); library(reconstructR)" # Bash prompt CMD ["/bin/bash"] From e1d81e0d601f111f19fa5fc92d72c46b56b9ee35 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 10:15:12 -0500 Subject: [PATCH 2/7] fix typo --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index ffd27ad..3264050 100644 --- a/Dockerfile +++ b/Dockerfile @@ -37,7 +37,7 @@ RUN R -e "devtools::install_github('RfastOfficial/Rfast', dependencies=TRUE); li # Install reconstructR R package COPY . /opt/reconstructR -RUN R -e "devtools::install_local("/opt/reconstructR", dependencies=TRUE, upgrade='never'); library(reconstructR)" +RUN R -e "devtools::install_local('/opt/reconstructR', dependencies=TRUE, upgrade='never'); library(reconstructR)" # Bash prompt CMD ["/bin/bash"] From 47575f4c06bd02d5a8a1c8b31ca505df666fa021 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 10:46:02 -0500 Subject: [PATCH 3/7] add a cp_and_decompress script --- scripts/cp_and_decompress.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100755 scripts/cp_and_decompress.sh diff --git a/scripts/cp_and_decompress.sh b/scripts/cp_and_decompress.sh new file mode 100755 index 0000000..be0b61b --- /dev/null +++ b/scripts/cp_and_decompress.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +INFILE=$1 +OUTFILE=$2 + +if [[ $INFILE == *.gz ]]; then + pigz -dc $INFILE > $OUTFILE +elif [[ $INFILE == *.zst ]]; then + zstd -d $INFILE -o $OUTFILE +else + cp $INFILE $OUTFILE +fi From d775a66e6290b9b55acb13af5012427cfc57974e Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 11:02:13 -0500 Subject: [PATCH 4/7] add pigz via apt --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3264050..86424a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN apt-get update && \ # install all desired packages RUN apt-get -y -qq install \ - less nano vim git wget curl jq zstd parallel locales \ + less nano vim git wget curl jq zstd pigz parallel locales \ gnupg libssl-dev libcurl4-openssl-dev \ libgsl-dev libxml2 libxml2-dev \ imagemagick libmagick++-dev \ From 5e647452107b6cc007d10592d896e62e5c3d0715 Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 11:06:38 -0500 Subject: [PATCH 5/7] whitespace --- scripts/cp_and_decompress.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/cp_and_decompress.sh b/scripts/cp_and_decompress.sh index be0b61b..5a44707 100755 --- a/scripts/cp_and_decompress.sh +++ b/scripts/cp_and_decompress.sh @@ -4,9 +4,9 @@ INFILE=$1 OUTFILE=$2 if [[ $INFILE == *.gz ]]; then - pigz -dc $INFILE > $OUTFILE + pigz -dc $INFILE > $OUTFILE elif [[ $INFILE == *.zst ]]; then - zstd -d $INFILE -o $OUTFILE + zstd -d $INFILE -o $OUTFILE else - cp $INFILE $OUTFILE + cp $INFILE $OUTFILE fi From 4708cec3da5045e39a7a01f096cb9a5ba9c5206c Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 11:06:49 -0500 Subject: [PATCH 6/7] add multi-file version --- scripts/mcp_and_decompress.sh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100755 scripts/mcp_and_decompress.sh diff --git a/scripts/mcp_and_decompress.sh b/scripts/mcp_and_decompress.sh new file mode 100755 index 0000000..5e4d223 --- /dev/null +++ b/scripts/mcp_and_decompress.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +INFILES=${@:1:$#-1} +OUTDIR=${@:$#} + +for INFILE in $INFILES; do + if [[ $INFILE == *.gz ]]; then + OUTFNAME=$(basename $INFILE .gz) + pigz -dc $INFILE > "$OUTDIR/$OUTFNAME" + elif [[ $INFILE == *.zst ]]; then + OUTFNAME=$(basename $INFILE .zst) + zstd -d $INFILE -o "$OUTDIR/$OUTFNAME" + else + OUTFNAME=$(basename $INFILE) + cp $INFILE "$OUTDIR/$OUTFNAME" + fi +done From de9e8b8573432af714a990bc72075d6feddb3faa Mon Sep 17 00:00:00 2001 From: Daniel Park Date: Tue, 12 Dec 2023 11:25:27 -0500 Subject: [PATCH 7/7] merge apt-get update and apt-get install build layers -- install will not work on out-of-date update data --- Dockerfile | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 86424a1..74bec77 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,15 +5,13 @@ LABEL maintainer "Daniel Park " # non-interactive session just for build ARG DEBIAN_FRONTEND=noninteractive -# update apt database and install R apt repo +# update apt database and install R apt repo; install all desired packages RUN apt-get update && \ apt-get -y -qq install software-properties-common && \ apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 && \ add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/' && \ - apt-get update - -# install all desired packages -RUN apt-get -y -qq install \ + apt-get update && \ + apt-get -y -qq install \ less nano vim git wget curl jq zstd pigz parallel locales \ gnupg libssl-dev libcurl4-openssl-dev \ libgsl-dev libxml2 libxml2-dev \