Dockerキャッシュの無効化をデバッグする方法は?


15

Dockerにはキャッシュがありますが、これは素晴らしいことですが、「docker build」の出力に表示されるのは次のいずれかです。

---> Using cache

またはコマンドの出力(これはキャッシュを使用していないことを意味します)。

Dockerfileの1ステップ(COPY)の後、明らかにキャッシュを使用しません。しかし、私はそれがコピーしているフォルダで何も変わっていないことをかなり確信しています。(これは私たちのアプリケーションであり、たとえば、2回続けてデプロイする場合でも、キャッシュなしのケースに遭遇します。)

Dockerに変更点を教えてもらう方法はありますか?

私はDockerがこれのタイムスタンプをチェックするために使用したことを知っていますが、それはDocker 1.8で修正され、私はここでDocker 1.9.xにいます。


投稿してくださいDockerfile
ジョエルEサラス

1
@JoelESalas:あなたのリクエストはわかりません。FROM ubuntu:14.04 MAINTAINER me COPY /app/ /app/これを実証するような単純なもの。そして、ソースコードとインフラストラクチャ全体を投稿するつもりはありません。
ティムメイ

1
その上、たとえDockerfileを見ても助けになるとしても、問題はどのようにしそのような問題診断するかでした。他の誰かが私の設定を見て答えを教えて欲しくありません。問題を解決するためにどのツールが存在するかを知りたい。
ティムメイ

そのディレクトリで何も変化していないことをどのように確信していますか?
ジョエルEサラス

回答:


4

でバイナリ検索を使用し.dockerignoreます。

ファイルの半分をに追加して.dockerignore、コンテナを構築します。COPYステップでキャッシュを使用する場合、変更されたファイルは無視したセットにあることがわかります。そうでない場合は、残りの半分にあることがわかります。1つのファイル/フォルダーになるまで、変更があるファイルのセットでこのテストを繰り返します。

(lazyweb様:Dockerを拡張して痛みを軽減する方法を見つけてください!)


2
ローカルで何かをデバッグするための大丈夫なアプローチに聞こえます、ありがとう。私の場合、私は現在CI環境でDockerキャッシュをデバッグしようとしていますが、Dockerをより詳細に構築する方法を見つけることができないようだと
少し悩んでいます
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.