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