Сборка без кеша в Docker
Сборка без кеша выполняет каждый
шаг заново, даже если строки
файла не менялись.
Флаг --no-cache у
docker build отключает
повторное использование
готовых слоёв.
Основа - alpine.
Один шаг записывает слово
в файл.
Образ note:
FROM alpine
RUN echo fresh > /note.txt
Обычная повторная сборка
с той же меткой взяла бы
готовый шаг из кеша и не
запускала RUN снова.
С флагом шаг выполняется
каждый раз.
Первая сборка и повтор с
--no-cache:
docker build -t note .
docker build --no-cache -t note .
При запуске файл по-прежнему
содержит fresh,
но в журнале второй сборки
видно, что шаг не помечен
как взятый из кеша.
Проверим содержимое:
docker run --rm note cat /note.txt
Соберите образ redo с одним шагом, который записывает again в /redo.txt, затем повторите сборку так, чтобы готовые шаги не взялись из кеша.
Сравните журнал двух сборок и отметьте, отличается ли строка про кеш у шага записи в файл.