我创建了以下Dockerfile,并且能够成功构建它(sudo docker build -t cmp-genomics .
):
FROM ubuntu:14.04
MAINTAINER x
# Setup OS
RUN apt-get update -y && apt-get upgrade -y
RUN apt-get -y install python-software-properties
RUN apt-get -y install software-properties-common
RUN add-apt-repository ppa:nebc/bio-linux
RUN apt-get update
RUN apt-get install -y wget
RUN apt-get install -y python-setuptools python-docutils python-pip
#RUN pip install snakemake
RUN apt-get install -y emboss=6.6.0+dfsg-2biolinux1
RUN apt-get install -y hmmer=3.1b1-3
RUN apt-get install -y lastz=1.02.00-3biolinux1.1
RUN apt-get install -y ncbi-blast+=2.2.28-2
# Augustus
RUN mkdir /augustus
RUN wget -c http://bioinf.uni-greifswald.de/augustus/binaries/augustus-3.1.tar.gz
RUN tar -xvzf augustus*.tar.gz -C /augustus
RUN rm augustus*.tar.gz
ENV PATH /augustus/bin:/augustus/scripts:$PATH
ENV AUGUSTUS_CONFIG_PATH /augustus/config
# BUSCO
RUN mkdir /busco
RUN wget -c http://busco.ezlab.org/files/BUSCO_v1.1.tar.gz
RUN tar -xvzf BUSCO*.tar.gz -C /busco
RUN rm BUSCO*.tar.gz
RUN chmod +x /busco/BUSCO_v1.1.py
ENTRYPOINT ["/busco/BUSCO_v1.1.py"]
# Cleanup
RUN DEBIAN_FRONTEND=noninteractive apt-get purge -y build-essential
RUN DEBIAN_FRONTEND=noninteractive apt-get purge -y gfortran
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
但是当我尝试运行它时出现以下错误:
$ docker run -v /galaxy/downloads:/data cmp-genomics /busco/BUSCO_v1.1.py
no such file or directory
Error response from daemon: Cannot start container 61c57cb5c15f9518464dd173a185a20429645880af100477d6b807c0df4b9e8b: [8] System error: no such file or directory
我做错了什么?
答案 0 :(得分:1)
问题不在于docker-container,而是" busco" -program - 它返回"没有这样的文件或目录"和崩溃。也许您必须为文件提供更多参数,否则python-installation不能完成?
另外,如果指定一个入口点,则不必在运行调用中重复该命令:
docker run -v /galaxy/downloads:/data cmp-genomics /busco/BUSCO_v1.1.py
使用/busco/BUSCO_v1.1.py
作为第一个参数调用/busco/BUSCO_v1.1.py
程序 - 此程序返回非零退出代码。
答案 1 :(得分:0)
在旋转我的docker容器时,我多次遇到此错误。当您尝试访问容器中某个实际上不存在的目录时,通常会弹出此错误。虽然我找不到Dockerfile的任何问题,但是我建议你不要直接在容器的开头运行你的python文件。
相反,您应该以交互式shell模式运行容器,并手动验证是否所有文件和目录实际上都是按照您的预期创建的,并且我确信您会发现错误。