#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», чтобы принудительно очистить кэш здесь