Как переопределить случайный тег изображения Дженкинса для агента Dockerfile в конвейере - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть шаг в моем Jenkinsfile, который выполняется с использованием агента Dockerfile. Когда Дженкинс создает образ докера, он присваивает ему случайный длинный тег, и я хотел бы заменить его своим собственным тегом. Я попытался передать тег, используя additionalBuildArgs, но это дает образу докера дополнительный тег.

agent {
        dockerfile {
            additionalBuildArgs '-t my-image:latest'
        }
}

Есть ли способ помешать Дженкинсу передать тег?

1 Ответ

0 голосов
/ 10 октября 2018

Плагин, управляющий этим действием: pipe-model-definition-plugin .

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

def hash = Utils.stringToSHA1("${runWrapper.fullProjectName}\n${script.readFile("${dockerfilePath}")}")
def imgName = "${hash}"

Затем он берет дополнительные аргументы и добавляет их к имени изображения:

def additionalBuildArgs = describable.getAdditionalBuildArgs() ? " ${describable.additionalBuildArgs}" : ""
script.sh "docker build -t ${imgName}${additionalBuildArgs} -f \"${dockerfilePath}\" \"${describable.getActualDir()}\""

поэтому, используя шаг dockerfile, кажется, что имя всегда будет хешем.

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