Linux 如何在docker文件中包含shell脚本套件

Linux 如何在docker文件中包含shell脚本套件,linux,docker,shell,Linux,Docker,Shell,我正在尝试为BBMAP()shell脚本套件创建一个docker映像,该脚本套件与samtools和picard.jar一起在线提供。我能够运行samtools和picard,但由于某些原因,我无法在下面添加bbmap。有人能告诉我我错过了什么吗 我正在尝试将shell脚本添加到bin中,以将它们作为可执行文件运行。 在我下面的docker文件中,这是我需要帮助的地方: && wget -q https://sourceforge.net/projects/bbmap/files

我正在尝试为
BBMAP
()shell脚本套件创建一个docker映像,该脚本套件与samtools和picard.jar一起在线提供。我能够运行samtools和picard,但由于某些原因,我无法在下面添加
bbmap
。有人能告诉我我错过了什么吗

我正在尝试将shell脚本添加到bin中,以将它们作为可执行文件运行。 在我下面的docker文件中,这是我需要帮助的地方:

&& wget -q https://sourceforge.net/projects/bbmap/files/latest/download \
&& tar -xjvf /tmp/download \
&& cp -av /tmp/bbmap/* /usr/bin/ \
Dockerfile:

FROM openjdk:8-jre
LABEL maintainer="AN <XXX@wustl.edu>"

LABEL org.label-schema.schema-version="1.0"
# LABEL org.label-schema.build-date=$BUILD_DATE
LABEL org.label-schema.name="an/samtofastq"
LABEL org.label-schema.description="Image for Reverting .bam"

ENV SAMTOOLS_VERSION 1.9
ENV PICARD_VERSION 2.20.8

WORKDIR /tmp

RUN apt-get update -y \
&& apt-get install --no-install-recommends -y \
 make \
 gcc \
 g++ \
 libz-dev \
 libbz2-dev \
 liblzma-dev \
 ncurses-dev \
 bc \
 libnss-sss \
 time \
&& cd /tmp \
&& wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2 \
&& tar xjvf samtools-${SAMTOOLS_VERSION}.tar.bz2 \
&& cd /tmp/samtools-${SAMTOOLS_VERSION}/ \
&& make \
&& cp -av /tmp/samtools-${SAMTOOLS_VERSION}/samtools /usr/bin/ \
&& wget -q -O /usr/bin/picard.jar https://github.com/broadinstitute/picard/releases/download/${PICARD_VERSION}/picard.jar \
&& wget -q https://sourceforge.net/projects/bbmap/files/latest/download \
&& tar -xjvf /tmp/download \
&& cp -av /tmp/bbmap/* /usr/bin/ \
&& ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime \
&& echo "America/Chicago" > /etc/timezone \
&& dpkg-reconfigure --frontend noninteractive tzdata \
&& apt-get clean all \
&& rm -rfv /var/lib/apt/lists/* /tmp/* /var/tmp/* 

 

# COPY ./entrypoint.sh /usr/local/bin/
ENV PICARD /usr/bin/picard.jar

## Add ENV for Shell scripts from BBMAP
# ENV DEMUX /usr/bin/demuxbyname.sh
# ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
CMD ["/bin/bash"]

在脚本的前面,您运行:

cd /tmp/samtools-${SAMTOOLS_VERSION}/ 
所以当你运行这个:

wget -q https://sourceforge.net/projects/bbmap/files/latest/download
生成的文件是:

/tmp/samtools-${SAMTOOLS_VERSION}/download
这意味着当您运行
tar
命令时:

tar -xjvf /tmp/download
…它找不到该文件,因为它不在
/tmp


在下载文件之前,请更改
tar
命令的路径,或在脚本中添加
cd/tmp
。或者将类似于
-O/tmp/download.tar的内容传递给您的
wget
调用。

到底是什么问题?你有错误吗?有些东西不起作用了吗?@larsks请查看我更新的问题,以及我收到的错误。
tar -xjvf /tmp/download