私は以下のようにdockerfileのベースイメージとしてPython_onbuildを使用しています。しかし、ソースファイルを変更するたびにキャッシュを無効にすることで、私のコマンドが繰り返されています。dockerfilesのベースイメージとして使用するPythonのバリアントはどれですか?
FROM python:2.7.13-onbuild
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
RUN echo "Test Cache"
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install --assume-yes apt-utils
RUN apt-get update && apt-get install -y curl
RUN apt-get update && apt-get install -y unzip
RUN curl -o - url
ビルドログ:
Sending build context to Docker daemon 239.1kB
Step 1/6 : FROM python:2.7.13-onbuild
# Executing 3 build triggers...
Step 1/1 : COPY requirements.txt /usr/src/app/
---> Using cache
Step 1/1 : RUN pip install --no-cache-dir -r requirements.txt
---> Using cache
Step 1/1 : COPY . /usr/src/app
---> 13e927036649
私は作業ディレクトリ内のファイルに変更を加えるたび(Step 1/1 : COPY . /usr/src/app)
を繰り返しコマンドの残りの部分を作っているコピーのこの第三段階。私はこれを基本イメージからのONBUILDコマンドと考えています。それが本当なら、そのような状況では代替ベースイメージは何ですか?私はPythonを使うべきですか?
私はドッカーをビルドするたびに繰り返す必要のない3.6GBのファイルをダウンロードする必要があるため、コピーのプロセスと同様に要件のインストールをさらに制御したいと考えています。
注:この特定のベースイメージは他の人が選択したもので、既存の作品の上に構築しています。
ソースコードを変更するたびにインストールしないように、ソースコピー部分をdockerfile ..の最後まで移動してインストールすることができます。 – viveksyngh
@viveksyngh基本部分が扱うコピー部分は変更できません。私のdockerファイルには明示的なコピーコマンドはありません。 – utengr