Какова наилучшая практика для определения открытого порта для выполнения теста Docker на Jenkins?
Я создаю веб-приложение (в виде образа Docker), которое я хотел бы протестировать с помощью Jenkins перед публикациейв реестр.Файл Jenkins выглядит следующим образом:
pipeline {
agent none
stages {
stage ("Docker Build & Test"){
agent {
label "docker"
}
steps {
script {
def img = docker.build("my-application")
img.withRun("-p 80:5000") {
// do stuff
}
}
}
post {
cleanup {
cleanWs()
}
}
}
}
}
Однако проблема с вышеуказанной настройкой заключается в том, что порт 5000 может быть занят параллельным заданием, что приводит к ошибке выделения. Есть ли способ динамически найти открытый порт для использования?