docker не генерирует новый образ из сборки docker

#docker #docker-build

#docker #docker-build

Вопрос:

Я занимаюсь недорогим проектом, который мы отправляем в реестр контейнеров (DigitalOcean) только последнее изображение.

Но все время после запуска:

 docker build .
 

Каждый раз генерирует один и тот же дайджест.

Это мой скрипт для сборки:

 docker build .
docker tag {image}:latest registry.digitalocean.com/{company}/{image}:latest;
docker push registry.digitalocean.com/{company}/{image}
 

Я пытался:

 BUILD_VERSION=`date ' %s'`;

docker build -t {image}:"$NOW" -t {image}:latest .
docker tag {image}:latest registry.digitalocean.com/{company}/{image}:latest;
docker push registry.digitalocean.com/{company}/{image}
 

но не сработало.

Ответ №1:

Редактируя мой ответ, то, что сказал Дэвид, верно — нажатие без тега должно подобрать последний тег.

Если вы предоставите то, что у вас есть в вашем локальном репозитории, и выходные данные приведенных выше команд, это прольет больше света на вашу проблему.

Редактировать 2:

Я думаю, что я понял, почему:

Каждый раз генерирует один и тот же дайджест.

Это означает, что, хотя вы запускаете сборку docker, в базовых артефактах, которые упаковываются в изображение, не было никаких изменений, и, следовательно, это приводит к тому же дайджесту.

Комментарии:

1. ...:latest это тег по умолчанию, если вы его не укажете; Я бы не ожидал, что его добавление что-то изменит.

Ответ №2:

Иногда слои кэшируются, но есть изменения, которые не обнаруживаются, поэтому вы можете удалить изображение или использовать «обрезку системы docker», чтобы принудительно очистить кэш здесь