Як налагодити помилку кешування Docker?


15

У Docker є кеш-пам'ять, що чудово, але все, що я бачу на виході "docker build" - це:

---> Using cache

або вихід команди (що означає, що це не використання кешу).

Після одного кроку в моєму Dockerfile (КОПІЯ) він очевидно не використовує кеш. Але я впевнений, що в папці, яку вона копіює, нічого не змінилося. (Це наш додаток, і я стикаюся з випадком без кешу, навіть коли я розгортаю двічі поспіль, наприклад.)

Чи є спосіб змусити Докера сказати мені, що, на його думку, змінилося?

Я знаю, що Докер перевіряв часові позначки для цього, але це було виправлено в Docker 1.8, і я тут на Docker 1.9.x.


Опублікуйте, будь ласка, свійDockerfile
Джоель Е Салас

1
@JoelESalas: Я не розумію вашого запиту. Щось таке просто, як FROM ubuntu:14.04 MAINTAINER me COPY /app/ /app/це продемонструє. І я не збираюся розміщувати весь свій вихідний код та інфраструктуру.
Тіммай

1
Крім того, навіть якщо перегляд Dockerfile може допомогти, питання було в тому, як мені діагностувати подібні проблеми. Я не хочу, щоб хтось інший дивився на мою конфігурацію і сказав мені відповідь. Хочу знати, які існують інструменти, щоб допомогти вирішити проблему.
Тіммай

Наскільки ви впевнені, що в цьому каталозі нічого не змінюється?
Джоель Е Салас

Відповіді:


4

Використовуйте двійковий пошук, с .dockerignore.

Додайте до половини своїх файлів .dockerignoreі складіть контейнер. Якщо він використовує кеш для COPYкроку, то ви знаєте, що змінені файли є у наборі, який ви проігнорували, інакше ви знаєте, що це в іншій половині. Повторіть цей тест із набором файлів, які мають зміни, поки це лише один файл / папка.

(Шановний lazyweb: придумай якийсь спосіб продовжити Докер, щоб зробити це менш болісним!)


2
Дякує нормальний підхід до налагодження чогось локального, спасибі. У моєму випадку я зараз намагаюся налагодити кеш Docker в середовищі CI, і я трохи розчулився, що я не можу знайти жодного способу зробити Docker будувати більш багатослівним = /
elias
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.