Подтвердить что ты не робот

Docker Hub Automated Build - тегирование

При указании автоматической сборки на докере-концентраторе я могу установить некоторые настройки (Type ('Branch' или 'Tag'), Name, Dockerfile Location и Docker Tag Name). Но, к сожалению, я не нашел для них никакой документации.

Я предполагаю, что, когда я выбираю Type 'Branch' и вводим Name, это ветка из моего репозитория git при использовании GitHub/BitBucket и что Docker Tag Name приводит к назначению тега к созданному изображению.

Я немного поиграл с ним и нашел некоторые вещи, которые мне непонятны, но я надеюсь, что вы можете мне объяснить.

  • Добавление нескольких записей приводит только к назначению только одного тега. Я использовал 'Branch', 'master' и '/' и 'latest' как Docker Tag Name в первом, 'v1' во втором. Но в качестве тега используется только "v1".

  • Использование Type 'Tag' не привело к другому результату. Я думал, что это может создать только изображение, если git commit помечен этим значением. Для чего этот тип?

Я искал возможность назначить тег "последний" последней сборке и использовать схему, такую ​​как v1, v2, v3 и т.д. для старых сборников, как я мог бы сделать при локальном создании изображений.

4b9b3361

Ответ 1

Это ОЧЕНЬ ЛЕГКО в 2 ШАГА...

ШАГ 1 - щелкните ссылку Автоматическая компоновка

Automated build link

ШАГ 2 - добавьте несколько автоматических сборок к одному и тому же реестру докеров (большинство людей не знают, что вы можете добавить несколько автоматических сборок), нажав кнопку BLUE PLUS (см. рисунок ниже)

Adding multiple automated builds

В примере на изображении выше я...

  • добавление "последнего" тега докеров, который отображается в ветке ведущего github
  • добавление тега докеры "0.1.0", который сопоставляется с тегом github 0.1.0

Обратите внимание, что тег github должен существовать!

СЕЙЧАС, когда я нажимаю save и запускает сборку сборки 2, один для последнего тега и один для тега 0.1.0.

Просто, когда вы знаете, как:) Думаю, я бы предоставил полный ответ, потому что это плохо документировано.

Ответ 2

Несколько месяцев назад я связался с поддержкой докеров о явном предоставлении номеров версий и не поддерживался в то время.

То, что вы указываете в концентраторе докера, это тег/ветвь git, который будет наблюдаться. Результат сборки всегда будет помечен latest.

Ответ 3

Усман ответил обходным путем для аналогичного вопроса в fooobar.com/questions/228673/...

В основном

  • войдите в настройки автоматической сборки,
  • добавить другой тип сборки с помощью тега
  • введите имя тега git
  • и укажите имя версии
  • нажмите сохранить и создать триггер.

Как вы можете видеть, я сделал это для этой автоматической сборки

Ответ 4

Автоматическая привязка изображений докеров доступна на dockerhub! Я возился с этим в последнее время и хотел поделиться своими выводами, прыгая на эту тему (надеюсь, что все в порядке!)

Итак, у меня есть публичное репо GitHub с автоматической связью на dockerhub. Я хочу, чтобы тег :latest обновлялся каждый раз, когда я нажимаю на ветвь master. Кроме того, я хочу, чтобы теги :X, :X.Y и :X.Y.Z создавались для каждой версии, которую я создаю в GitHub (помечен как vX.Y.Z в GitHub).

Вот как выглядит конфигурация настроек сборки: настройки сборки докеры

И в тексте, поэтому проще скопировать-вставить:

| Type   | Name                              | Dockerfile Location | Docker Tag Name |
|--------|-----------------------------------|---------------------|-----------------|
| Branch | master                            | /                   | latest          |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}            |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}.{\2}       |
| Tag    | /^v([0-9]+)\.([0-9]+)\.([0-9]+)$/ | /                   | {\1}.{\2}.{\3}  |

Надеюсь, это поможет!

Ответ 5

Мое решение назначить тег "последний" для последней сборки - использовать следующую конфигурацию в автоматической сборке:

| Type   | Name   | Dockerfile Location | Tag Name |
| Branch | master |        /            | latest   |

Всякий раз, когда в master создается фиксация, создается новая сборка с тегом "latest".

Возникла проблема несколько дней назад, когда автоматическая сборка использовала имя ветки как имя тега, поэтому вы могли бы найти пару сборников с "мастером". Это исправлено: https://forums.docker.com/t/automated-builds-not-tagging-latest/683

Ответ 6

Я еще не использовал эту функцию, поэтому могу ошибаться, но сегодня, когда я перешел на вкладку build settings и выбрал tag для второго типа сборки, у нее автоматически было регулярное выражение /.*/, которое будет выберите все теги.

Я обновлю это, как только проверю его.