Docker — Декларативные Конвейеры Jenkins Dockerfile: Получение Встроенного Тега Изображения

  • Автор темы Olekkam
  • Обновлено
  • 21, Oct 2024
  • #1

Я пытаюсь создать тег изображения с помощью агента dockerfile в декларативных конвейерах Jenkins.

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

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

pipeline {

agent {

dockerfile {

args '--network szeremi -e DB_HOST=mysql -e APP_ENV=testing'

}

}

stages {

stage('Run tests') {

steps {

sh 'cd /var/www && php artisan migrate:fresh && vendor/bin/phpunit'

}

}

}
}
command.

(Затем нужно будет заменить старый работающий образ на новый, но я, вероятно, мог бы позаботиться об этом сам.)

Вот мой Jenkinsfile:

docker tag

Пожалуйста, помогите мне использовать декларативные конвейеры Jenkins для повторной пометки моего образа, созданного с помощью dockerfile.

#docker #jenkins #jenkins-pipeline #dockerfile

Olekkam


Рег
27 Jan, 2012

Тем
72

Постов
189

Баллов
569
  • 25, Oct 2024
  • #2

Насколько я понимаю, вы хотите добавить переменную в тег изображения докера,

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

    agent {

dockerfile {

additionalBuildArgs '-t mytag'

}

}

пожалуйста, используйте этот URL для получения дополнительной информации

 

Invipsess


Рег
18 Sep, 2007

Тем
74

Постов
197

Баллов
577
  • 25, Oct 2024
  • #3

mytag
делает выведите идентификатор изображения:

additionalBuildArgs

К сожалению, это не похоже на Плагин Docker Build Step предоставляет его конвейеру (он делает запишите это в журнал!). Возможно, вы захотите открыть проблему с этим проектом.

Тем не менее,

sh script: 'docker ...'
itself accepts
docker build
:

$ docker help tag
Usage:  docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Поскольку вы (можете) выбрать имя изображения и первый тег для

name:tag
, try using those to identify the built image instead of its ID. If that doesn't work with the plugin, you may need a feature request after all.

В качестве обходного пути вы всегда можете использовать

docker tag
directly.

 

Cashflow


Рег
23 Jan, 2020

Тем
69

Постов
205

Баллов
590
  • 25, Oct 2024
  • #4

Вероятно, вам нужно

Successfully built 6fd2b9d56348
Successfully tagged foo:latest
to tag your image as
docker build
:

    pipeline {

environment {

registry = "docker_hub_account/repository_name"

registryCredential = 'dockerhub'

}

agent any

stages {

stage('Building image') {

steps{

script {

docker.build registry + ":$BUILD_NUMBER"

}

}

}

}
}
 

Te6a


Рег
22 Oct, 2006

Тем
71

Постов
186

Баллов
571
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно