В моем 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, чтобы решить, можно ли использовать кэшированный слой или нет.
Я знаю, что могут помочь некоторые грязные уловки, например, вместо этого выполняя сценарий оболочки загрузки в операторе RUN
. Его имя файла будет изменено до того, как docker build
будет запущен нашей системой сборки. И я мог бы проводить HTTP-проверки внутри этого скрипта. Но тогда мне нужно где-то сохранить либо последний использованный ETag, либо последний измененный файл. Мне интересно, есть ли здесь еще какие-нибудь чистые и нативные функции Docker, которые я мог бы использовать.