Вы правы, что изображение, которое вы строите поверх, такое же, как и раньше, потому что дайджесты совпадают. Проблема заключается в том, что последующие инструкции в вашем Dockerfile не всегда будут выполняться одинаково. В этом случае, когда вы звоните apt-get update
, вы обращаетесь к удаленным репозиториям apt. Я не очень разбираюсь в этом процессе, но в основном кажется, что было сделано какое-то обновление, нарушающее совместимость с этим образом. Каждый раз, когда у вас есть такие удаленные зависимости (вызовы apt-get, загрузка файлов и т. Д.), Они могут измениться или стать недоступными, что приведет к сбою сборки, даже если базовый образ будет таким же.
Например, если у меня есть этот Dockerfile
FROM ubuntu:latest
RUN curl http://some.url --output some.file
Каждый раз, когда я запускаю сборку, если у меня нет кэшированного слоя, http://some.url должен быть доступен, или сборка не будет выполнена, даже если базовый образ Ubuntu такой же.