2016-02-01 2 views
9

У меня есть несколько команд RUN в моем файле Docker, которые я хотел бы запускать с -no-cache каждый раз, когда я создаю изображение Docker.Отключить кеш для определенных команд RUN

Я понимаю, что docker build -no-cache отключит кеширование всего файла Docker.

Можно ли отключить кеш для конкретной команды RUN?

+0

После того, как отключить кэш для одной команды, если результат не соответствует мимо кэшированной перспективы, вам нужно восстановить все остальные шаги. Это ваша цель, или вы надеетесь только перестроить один слой и каким-то образом внедрить его туда, где хранились предыдущие кэшированные данные? – BMitch

+0

Я надеялся перестроить определенные слои, например команду «git pull». Прямо сейчас команда «git pull» будет кэширована, хотя репо обновляется. – Vingtoft

+1

Достаточно легко заставить вытащить пропущенный неиспользуемый аргумент. Но результат переустановки кэшированной записи заключается в том, что все последующие слои нуждаются в перестройке. См. [Мой ответ здесь] (http://stackoverflow.com/a/37798643/596285) для примера. – BMitch

ответ

2

Не напрямую, но вы можете разделить Dockerfile на несколько частей, построить изображение, а затем FROM thisimage в начале следующего Dockerfile, и построить изображение с или без кэширования

+0

Будет ли это включать обновление зафиксированных слоев в изображении базовой докеры? –

3

По состоянию на февраль 2016 года не возможное.

Функции была запрошена на GitHub

Смежные вопросы