gpt4 book ai didi

linux - 如何在Docker文件中包含Shell脚本套件

转载 作者:行者123 更新时间:2023-12-02 21:29:54 26 4
gpt4 key购买 nike

我正在尝试为samtools和picard.jar联机提供的BBMAP(https://sourceforge.net/projects/bbmap/files/latest/download)Shell脚本套件创建docker镜像。我能够运行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"]
这是我得到的错误:
tar (child): /tmp/download: Cannot open: No such file or directory                                                      
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now

最佳答案

在脚本的前面,您运行:

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调用。

关于linux - 如何在Docker文件中包含Shell脚本套件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64706962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com