
我正在建立幾個 docker 映像,但儘管我正在導入包含所述命令的映像,但我似乎無法存取某些命令。例子:
# Dockerfile ubuntu-essentials
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -y install ssh rsync git graphviz gedit-plugins wget nano zlibc zlib1g-dev build-essential libncurses5-dev libncursesw5-dev libboost-dev gdebi software-properties-common unzip
# Dockerfile fastqc
FROM ubuntu:14.04
FROM rioualen/ubuntu-essentials:1.0
ENV SOURCE_DIR=~/app_sources/
ENV BIN_DIR=~/bin/
WORKDIR ${SOURCE_DIR}
RUN wget --no-clobber http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
RUN unzip -o fastqc_v0.11.5.zip
儘管它安裝在第一個映像中,但這會引發錯誤「未找到解壓縮」。命令 wget 工作得很好。
當在第二個Dockerfile中新增unzip的安裝時,它可以正常運作:
# Dockerfile fastqc
FROM ubuntu:14.04
FROM rioualen/ubuntu-essentials:1.0
ENV SOURCE_DIR=~/app_sources/
ENV BIN_DIR=~/bin/
RUN apt-get -y install unzip
WORKDIR ${SOURCE_DIR}
RUN wget --no-clobber http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
RUN unzip -o fastqc_v0.11.5.zip
任何想法?作為 Docker 新手,我不知道該尋找什麼......謝謝。
答案1
有幾個“FROM”不按您期望的方式工作。將每個 FROM 作為新圖像的分隔符號。這意味著您正在建立 3 個不同的圖像,最後一個將是:
FROM rioualen/ubuntu-essentials:1.0
ENV SOURCE_DIR=~/app_sources/
ENV BIN_DIR=~/bin/
WORKDIR ${SOURCE_DIR}
RUN wget --no-clobber http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
RUN unzip -o fastqc_v0.11.5.zip
你還沒有安裝解壓縮的地方。
這有關它的文檔有點稀疏,但我認為它很好地解釋了這一點。
我建議您將要建立的每個圖像放入自己的圖像中,Dockerfile
這意味著每個圖像中只有一個“FROM”。這將使您對正在發生的事情有更好的透明度。