ОТ dockerimage: последние тянет неправильное изображение - PullRequest
0 голосов
/ 30 января 2019

У меня есть клиент-веб / базовый образ, который я создаю с помощью gitlab ci pipe:

  • последний c4fba30df 204,03 МБ 6 дней назад
  • version_2 c4fba30df 204,03 МБ 6 дней назад
  • version_1 7904a77c0 153,69 МБ 2 месяца назад

это изображения в моем хранилище докеров: как вы можете видеть, изображение с тегом последний, фактически является самым последним изображением, имеющим то же изображениеid (c4fba30df) как изображение с тегом version_2.

Я создаю другой образ, который построен поверх базового образа:

FROM gitlab.faccousa.net:4567/faccos/client-web/base:latest
...
...
...

Вчера я построил вышеуказанный файл изображения, и похоже, что произошло следующее:

Step 1/6 : FROM gitlab.faccousa.net:4567/faccos/client-web/base:latest
  ---> 7904a77c0

Но 7904a77c0 - это версия_1, поэтому идентификатор старого изображения.

Что-то не так с последним тегом?

Я знаю, что последние неправильно используются многими людьми, но в этом случае я чувствую, что у меня есть CI, который всегда строит мое базовое изображение и помечает его дважды с помощью:

  • фактический тег
  • последний тег

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Когда вы docker run получаете изображение или если Dockerfile создает FROM изображение, и Docker считает, что у него уже есть изображение локально, он будет использовать уже имеющееся изображение.В вашем случае, поскольку у вас уже есть версия ...:latest, Docker просто использует ее;он никогда не проверяет, что в другом месте может быть другая версия изображения с таким же тегом.

Самый надежный подход к этому - никогда не использовать тег :latest где-либо:

FROM gitlab.faccousa.net:4567/faccos/client-web/base:version_2

Если у вас много зависимых изображений, а базовое изображение постоянно меняется, поддержание этого может стать проблемой.

Другой вариант - сказать docker buildпытаться --pull базовый образ каждый раз

docker build --pull -t ... .

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

0 голосов
/ 30 января 2019

base - это название вашего проекта?

gitlab.example.com: порт / пользователь / имя проекта: последний

вот полное руководство

это нормально, что ваша версия_2 и последняя имеют одинаковый идентификатор изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...