Jenkinsfile docker.withRegistry нажимает на артефакт с помощью метода поддомена

Я настроил наш артефактный экземпляр, используя файл метод пути к репозиторию. Я пытаюсь отправить изображение, созданное в Jenkins, в Artifactory, но, похоже, он игнорирует сам путь к репозиторию.

def dockerImage = _dockerImage("kl_alpha")
docker.withRegistry( "https://artifactory-dev.foobar.com/docker-local", "someCreds") {
  // def dockerImage =  docker.build("kl_alpha:$BUILD_NUMBER", "./")
  dockerImage.push()
  dockerImage.push("latest")
} 

             

Вывод в Jenkins выглядит примерно так

+ docker push artifactory-dev.foobar.com/kl_alpha:25
The push refers to repository [artifactory-dev.foobar.com/kl_alpha]

Как видите, он игнорирует локальную часть адреса, относящуюся к докеру. Любые идеи?

Репозиторий будет частью аргумента имени образа, а не реестра.

Matt Schuchard 05.04.2022 15:30

Итак, вы говорите, что имя образа должно быть docker-local/kl_alpha ?

Alistair Hardy 05.04.2022 15:38

В этой ситуации я считаю, что это будет ожидаемый аргумент в пользу Docker и плагина Docker для Jenkins Pipeline.

Matt Schuchard 05.04.2022 16:19

Можете ли вы добавить вышеизложенное в ответ, и я отмечу это как таковое :)

Alistair Hardy 06.04.2022 16:10
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
4
44
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для Docker и подключаемого модуля Docker для Jenkins Pipeline репозиторий является частью аргумента образа, а не реестра. В целом это будет выглядеть так:

docker.withRegistry('<registry url>') {}
  def dockerImage = docker.build('<repository>/<image name>:<tag>')
}

Обратите внимание, что в документации реестра Artifactory Docker для Jenkins Pipeline иногда используется термин «репозиторий», хотя на самом деле он означает «реестр», и это может сбивать с толку и вводить в заблуждение. Также обратите внимание, что некоторые изображения не имеют аргумента репозитория, поскольку они являются официальными.

В вашей ситуации код будет выглядеть так:

docker.withRegistry('https://artifactory-dev.foobar.com', 'someCreds') {
  def dockerImage = docker.build("docker-local/kl_alpha:${BUILD_NUMBER}", './')
  dockerImage.push()
  dockerImage.push('latest')
} 

Другие вопросы по теме