2017-12-30 72 views
-2

を構築:前apt-getの更新&すべての中に削除ドッカー層をインストールし、私は次のことを含むDockerfile持っ

FROM ubuntu:17.10 
WORKDIR /app 
ADD . /app 
RUN apt-get update && apt-get install -y \ 
python3-pip \ 
python3-numpy \ 
ffmpeg \ 
python3.6 \ 
xz-utils 
... 

RUNのステートメントで作成された層が、私はdocker buildを実行し、私はありませんたびに削除されますなぜこれが当てはまるのか確かめてください。すべての依存関係をインストールするのには時間がかかります。そのため、Dockerがそのレイヤーをキャッシュして、今後使用することをお勧めします。

私はその動作を取得するために何ができますか?

ありがとうございます。 documentation 1として

+1

あなたが追加しているカレントディレクトリの内容もビルド間で変更されますか? – jwodder

+0

Stack Overflowは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザ](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

0

1層のキャッシュが無効化された場合は、次の層を再構築する必要があるでしょう。したがって、すべての静的ステップを最初にDockerfileに入れることがベストプラクティスです(たとえば、あなたの場合はRUN apt-get ...コマンドを上に移動することができます)。 ADDおよびCOPY手順について

それは明らか願って、 イメージ内のファイル(複数可)の内容が検査され、チェックサムは、ファイルごとに計算されます。 ファイルの最終変更時刻および最終アクセス時刻は、これらのチェックサムで考慮されていない です。キャッシュルックアップ中に、チェックサム は、既存のイメージのチェックサムと比較されます。コンテンツおよびメタデータなどのファイルで が変更された場合は、 キャッシュが無効になります。キャッシュが無効化されたら

、後続のすべてのDockerfileは 新しい画像を生成するコマンドとキャッシュは使用されません。

関連する問題