Как условно вытащить последний тег изображения Docker вместо использования кешированной версии? - PullRequest
1 голос
/ 17 июня 2020

Мой файл Dockerfile содержит следующую строку:

COPY --from=whatwg/wattsi:latest /whatwg/wattsi/bin/wattsi /bin/wattsi

т.е. он копирует исполняемый файл из образа whatwg/wattsi, доступного на Docker Hub. По сути, это прямо из документации по многоступенчатым сборкам .

Однако, как только я запускаю Dockerfile, он кэширует локальную копию whatwg/wattsi:latest. Затем любые последующие обновления whatwg/wattsi, которые передаются на Docker Hub, игнорируются, и используется кэшированная копия. (То есть вся эта строка просто пропускается, а слой, который она создает, используется повторно.)

Я бы хотел, чтобы Docker сравнивал удаленную whatwg/wattsi:latest с локальной кэшированной копией, и повторно скачайте, если есть отличия. Возможно ли это?

Я хотел бы сделать это без жесткого кодирования версии для whatwg/wattsi в моем Dockerfile, который нужно обновлять каждый раз whatwg/wattsi revs.

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Нет возможности записать это в dockerfile.

Но вы можете запустить

docker build --pull

Из документации

--pull Всегда пытайтесь загрузить более новую версию образа https://docs.docker.com/engine/reference/commandline/build/#options

Это то же самое, что запустить

docker pull whatwg/wattsi:latest

перед docker build. Он просто проверяет, обновлена ​​ли ваша локальная копия изображения, и, если нет, загружает более новую версию.

Эта проблема существует не только для сборки, но и для запуска. Kubernetes решает эту проблему с помощью imagePullPolicy. (См. https://kubernetes.io/docs/concepts/containers/images/#updating -изображения )

1 голос
/ 17 июня 2020

docker build имеет параметр --pull, который «всегда будет пытаться получить более новую версию образа».

Первая сборка (ничего не кэшируется)

Step 2/2 : COPY --from=whatwg/wattsi:latest /whatwg/wattsi/bin/wattsi /bin/watt
latest: Pulling from whatwg/wattsi
24f0c933cbef: Pull complete 
69e2f037cdb3: Pull complete 
4f7407c4e0dc: Pull complete 
Digest: sha256:f555e4ff56b88313c7c47ca86b83367f9c1ca93552c477a96b9943e907bb7733
Status: Downloaded newer image for whatwg/wattsi:latest
 ---> 2ca5d7a1e784

Вторая сборка (использует кеш)

Step 2/2 : COPY --from=whatwg/wattsi:latest /whatwg/wattsi/bin/wattsi /bin/watt
 ---> Using cache
 ---> 2ca5d7a1e784

Третья сборка с --pull (проверяет наличие обновлений)

Step 2/2 : COPY --from=whatwg/wattsi:latest /whatwg/wattsi/bin/wattsi /bin/watt
latest: Pulling from whatwg/wattsi
Digest: sha256:f555e4ff56b88313c7c47ca86b83367f9c1ca93552c477a96b9943e907bb7733
Status: Image is up to date for whatwg/wattsi:latest
 ---> 7d3390252ae1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...