Есть ли способ «применить патч» к изображению докера, в частности, один или несколько команд RUN
, ADD
и т. Д.?Есть ли способ «применить патч» к изображению докера?
Например, команда RUN
может занять 20 минут, чтобы загрузить, скомпилировать и установить двоичный файл. Можно ли воспользоваться этим различием и применить его к другому изображению?
Единственный способ, которым я могу думать (что я до сих пор не пытался), чтобы запустить docker diff
, разобрать вывод, создать TGZ, а затем использовать TGZ как ADD
в другом Dockerfile
.
Я понимаю, что есть проблемы с этим, например. если заранее вызван apt-get update
, который может сломать ожидаемую связь динамической библиотеки для двоичного файла и т. д. Я в порядке с этим, так как мои тесты не удастся и покажут, что мне нужно снова перестроить «diff».
Я также понимаю, что могут быть конфликты. Я счастлив полностью заменить файл.
Причина этой функциональности - сэкономить время. Например, иногда команды раннего Dockerfile
необходимо изменить и разбить кеш. Кроме того, насколько я стараюсь сделать их идентичными, чтобы использовать кеш, не всегда возможно, чтобы предыдущие команды в двух разных Dockerfiles были одинаковыми.