
いくつかの 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
最初のイメージにインストールされているにもかかわらず、「unzip が見つかりません」というエラーが発生します。コマンド wget は完全に正常に動作します。
2 番目の 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
unzip をインストールしていない場所。
のそれに関する文書少し内容が薄いですが、うまく説明されていると思います。
構築したい各イメージをそれぞれ別々に配置することをお勧めしますDockerfile
。つまり、各イメージには 1 つの「FROM」のみが含まれることになります。これにより、何が起こっているかの透明性が大幅に向上します。