refactor: Minimize Dockerfile layers

This commit is contained in:
Thomas A. Christensen II 2023-08-09 16:02:46 -05:00
parent a1d0348697
commit 108fb0dc5b
Signed by: millironx
GPG key ID: 09335146883990B9
2 changed files with 89 additions and 86 deletions

View file

@ -6,18 +6,18 @@ ENV R_HOME=/usr/local/lib/R
ENV TZ=Etc/UTC ENV TZ=Etc/UTC
ENV SAMTOOLS_VERSION=1.2 ENV SAMTOOLS_VERSION=1.2
# Install R basic dependencies RUN <<END_RUN_CMD
RUN apt-get update && \ # Install R
apt-get update
apt-get install --no-install-recommends -y \ apt-get install --no-install-recommends -y \
sed \
curl \ curl \
ca-certificates ca-certificates
RUN curl -L "https://github.com/rocker-org/rocker-versioned2/archive/refs/tags/R${ROCKER_VERSION}.tar.gz" | tar xvz curl -L "https://github.com/rocker-org/rocker-versioned2/archive/refs/tags/R${ROCKER_VERSION}.tar.gz" | tar xvz
RUN ./rocker-versioned2-R${ROCKER_VERSION}/scripts/install_R.sh ./rocker-versioned2-R${ROCKER_VERSION}/scripts/install_R.sh
RUN rm -rf rocker-versioned2-R${ROCKER_VERSION} rm -rf rocker-versioned2-R${ROCKER_VERSION}
# Install BioPerl # Install BioPerl
RUN apt-get update && \ apt-get update
apt-get install --no-install-recommends -y \ apt-get install --no-install-recommends -y \
curl \ curl \
perl \ perl \
@ -26,33 +26,91 @@ RUN apt-get update && \
make \ make \
libexpat1-dev \ libexpat1-dev \
libssl-dev \ libssl-dev \
zlib1g-dev zlib1g-dev \
RUN cpanm -n -v Bio::Seq Bio::SeqIO Perl4::CoreLibs libncurses5-dev
cpanm -n -v Bio::Seq Bio::SeqIO Perl4::CoreLibs
# Install R packages # Install R packages
RUN install2.r --error --skipinstalled BiocManager install2.r --error --skipinstalled BiocManager
RUN R -e "BiocManager::install(c('Biostrings', 'seqinr'))" R -e "BiocManager::install(c('Biostrings', 'seqinr'))"
# Install samtools # Install samtools
RUN apt-get update && \ curl -L "https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2" | tar xvj
apt-get install --no-install-recommends -y libncurses5-dev cd samtools-${SAMTOOLS_VERSION} && make && make install && cd ..
RUN curl -L "https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2" | tar xvj rm -rf samtools-${SAMTOOLS_VERSION}
RUN cd samtools-${SAMTOOLS_VERSION} && make && make install && cd ..
RUN rm -rf samtools-${SAMTOOLS_VERSION}
# Cleanup # Install viquas
RUN apt-get remove -y \ mkdir /viquas && \
curl -L "https://master.dl.sourceforge.net/project/viquas/ViQuaS1.3.tar.gz" | tar xvz -C /viquas --strip-components=1
# Cleanup
apt-get remove -y \
build-essential \ build-essential \
make make \
curl
rm -rf /var/lib/apt/lists
END_RUN_CMD
# Install Viquas RUN <<END_RUN_CMD
RUN apt-get update && apt-get install --no-install-recommends -y curl cat << 'EOF' > /usr/bin/viquas
RUN mkdir /viquas && curl -L "https://master.dl.sourceforge.net/project/viquas/ViQuaS1.3.tar.gz" | tar xvz -C /viquas --strip-components=1 #!/bin/sh
RUN apt-get remove -y curl USAGE="
USAGE:
viquas reference.fsa reads.bam [o r perform_richness diversity_region_length]
"
# Add wrapper script NUM_ARGS=$#
COPY viquas /usr/bin/viquas case $NUM_ARGS in
RUN chmod +x /usr/bin/viquas 2)
RUN mkdir /work ;;
6)
;;
*)
echo "${USAGE}"
echo "Incorrect number of arguments: expecting 2 or 6"
exit 1
esac
PWD_BACKUP=$PWD
if [ ! -f "${1}" ]; then
echo "Error: ${1} is not a file"
exit 1
fi
if [ ! -f "${2}" ]; then
echo "Error: ${2} is not a file"
exit 1
fi
REFERENCE_FILE=$(basename "${1}")
BAM_FILE=$(basename "${2}")
cp "${1}" /viquas
cp "${2}" /viquas
cd /viquas || exit 1
case $NUM_ARGS in
2)
Rscript /viquas/ViQuaS.R "${REFERENCE_FILE}" "${BAM_FILE}"
;;
6)
Rscript /viquas/ViQuaS.R "${REFERENCE_FILE}" "${BAM_FILE}" "${@[3:]}"
;;
*)
echo "${USAGE}"
echo "Incorrect number of arguments: expecting 2 or 6"
exit 1
esac
mv /viquas/ViQuaS-Spectrum.fa "${PWD_BACKUP}"
mv /viquas/ViQuaS-Richness.txt "${PWD_BACKUP}" 2> /dev/null
cd "${PWD_BACKUP}" || exit 1
EOF
chmod +x /usr/bin/viquas
mkdir /work
END_RUN_CMD
ENTRYPOINT [ "viquas" ] ENTRYPOINT [ "viquas" ]

View file

@ -1,55 +0,0 @@
#!/bin/sh
USAGE="
USAGE:
viquas reference.fsa reads.bam [o r perform_richness diversity_region_length]
"
NUM_ARGS=$#
case $NUM_ARGS in
2)
;;
6)
;;
*)
echo "${USAGE}"
echo "Incorrect number of arguments: expecting 2 or 6"
exit 1
esac
PWD_BACKUP=$PWD
if [ ! -f "${1}" ]; then
echo "Error: ${1} is not a file"
exit 1
fi
if [ ! -f "${2}" ]; then
echo "Error: ${2} is not a file"
exit 1
fi
REFERENCE_FILE=$(basename "${1}")
BAM_FILE=$(basename "${2}")
cp "${1}" /viquas
cp "${2}" /viquas
cd /viquas || exit 1
case $NUM_ARGS in
2)
Rscript /viquas/ViQuaS.R "${REFERENCE_FILE}" "${BAM_FILE}"
;;
6)
Rscript /viquas/ViQuaS.R "${REFERENCE_FILE}" "${BAM_FILE}" "${@[3:]}"
;;
*)
echo "${USAGE}"
echo "Incorrect number of arguments: expecting 2 or 6"
exit 1
esac
mv /viquas/ViQuaS-Spectrum.fa "${PWD_BACKUP}"
mv /viquas/ViQuaS-Richness.txt "${PWD_BACKUP}" 2> /dev/null
cd "${PWD_BACKUP}" || exit 1