В моем Dockerfile
я использую curl
или ADD
для загрузки последней версии архива, например:
FROM debian:jessie
...
RUN apt-get install -y curl
...
RUN curl -sL http://example.com/latest/archive.tar.gz --output archive.tar.gz
...
ADD http://example.com/latest/archive2.tar.gz
...
Оператор RUN
, который использует curl
или ADD
, создает свой собственный слой изображения. Это будет использоваться как кеш для будущих исполнений docker build
.
Вопрос. Как отключить кеширование для этих инструкций?
Было бы здорово найти что-то вроде недействительности кэша. Например. используя HTTP ETags или путем запроса последнего измененного поля заголовка. Это даст возможность быстро выполнить проверку на основе заголовков HTTP, чтобы решить, можно ли использовать кешированный уровень или нет.
Я знаю, что некоторые грязные трюки могут помочь, например. вместо этого загрузите оболочку script в инструкции RUN
. Его имя будет изменено до запуска docker build
нашей системой сборки. И я мог бы выполнить проверки HTTP внутри этого script. Но тогда мне нужно сохранить либо последний использованный ETag, либо последний модифицированный файл. Мне интересно, есть ли еще более чистые и родные функции Docker, которые я мог бы использовать здесь.