#linux #docker #shell
#linux #docker #оболочка
Вопрос:
Я пытаюсь создать образ docker для BBMAP
(https://sourceforge.net/projects/bbmap/files/latest/download ) набор сценариев оболочки доступен онлайн вместе с samtools и picard.jar . Мне удалось запустить samtools и picard, но по какой-то причине я не могу добавить bbmap
ниже. Может кто-нибудь, пожалуйста, дайте мне знать, чего мне здесь не хватает?
Я пытаюсь добавить сценарии оболочки в bin, чтобы запускать их как исполняемые файлы. В моем файле docker ниже мне нужна помощь:
amp;amp; wget -q https://sourceforge.net/projects/bbmap/files/latest/download
amp;amp; tar -xjvf /tmp/download
amp;amp; 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
amp;amp; apt-get install --no-install-recommends -y
make
gcc
g
libz-dev
libbz2-dev
liblzma-dev
ncurses-dev
bc
libnss-sss
time
amp;amp; cd /tmp
amp;amp; wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2
amp;amp; tar xjvf samtools-${SAMTOOLS_VERSION}.tar.bz2
amp;amp; cd /tmp/samtools-${SAMTOOLS_VERSION}/
amp;amp; make
amp;amp; cp -av /tmp/samtools-${SAMTOOLS_VERSION}/samtools /usr/bin/
amp;amp; wget -q -O /usr/bin/picard.jar https://github.com/broadinstitute/picard/releases/download/${PICARD_VERSION}/picard.jar
amp;amp; wget -q https://sourceforge.net/projects/bbmap/files/latest/download
amp;amp; tar -xjvf /tmp/download
amp;amp; cp -av /tmp/bbmap/* /usr/bin/
amp;amp; ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime
amp;amp; echo "America/Chicago" > /etc/timezone
amp;amp; dpkg-reconfigure --frontend noninteractive tzdata
amp;amp; apt-get clean all
amp;amp; 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
Комментарии:
1. В чем именно проблема? Вы получаете сообщение об ошибке? Что-то не работает?
2. @larsks Пожалуйста, ознакомьтесь с моим обновленным вопросом с ошибками, которые я получаю.
Ответ №1:
Ранее в вашем скрипте вы запускаете:
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
команде, либо добавьте a cd /tmp
в свой скрипт перед загрузкой файла. Или передайте что-то подобное -O /tmp/download.tar
вашему wget
вызову.