Привет, я работаю над Openshift 3.9. Ниже приведен фрагмент кода конвейера Дженкинса.
stage('Build Image') {
openshift.withCluster() {
openshift.withProject(env.DEV_PROJECT) {
def bcSelector = openshift.selector("bc", "jboss")
def bcExists = bcSelector.exists()
if (!bcExists) {
openshift.newBuild("--name=jboss", "--image-stream=jboss-eap70-openshift:1.5", "--binary=true")
} else {echo "The specified image already exists"}
}}
}
stage('Build Image with app') {
sh "rm -rf oc-build && mkdir -p oc-build/deployments"
sh "cp /var/lib/jenkins/jobs/devpipeline/jobs/devpipeline-tasks-pipeline/workspace/target/hello-1.0.war oc-build/deployments/ROOT.war"
openshift.withCluster() {
openshift.withProject(env.DEV_PROJECT) {
openshift.selector("bc", "jboss").startBuild("--from-dir=oc-build", "--wait=true")
}
}
}
stage('deploy to Dev') {
openshift.withCluster() {
openshift.withProject(env.DEV_PROJECT) {
if (openshift.selector('dc', 'jboss').exists()) {
openshift.selector('dc', 'jboss').delete()
openshift.selector('svc', 'jboss').delete()
openshift.selector('route', 'jboss').delete()
}
def app = openshift.newApp("jboss:latest")
app.narrow("svc").expose();
def dc = openshift.selector("dc", "jboss")
openshift.tag("${env.DEV_PROJECT}/jboss:latest", "${env.DEV_PROJECT}/jboss:${build_number}")
}
}
}
На Build
этапе iam принимает контейнер jboss. На этапе Build Image with app
я беру файл войны, который был построен, и создаю образ jboss с файлом войны. В deploy to dev
я развертываю образ приложения в dev и помечаю образ номером сборки jenkins ${env.DEV_PROJECT}/jboss:${build_number}
. Я работаю над механизмом отката в конвейер, в котором я хочу развернуть образ с определенным номером сборки в среде разработки. Предположим, что если мой номер сборки jenkins 14, и я хочу развернуть 10, то как я могу развернуть конкретное помеченное изображение в dev. В изображениях openshift я вижу все изображения с тегами от 1 до 14. Теперь я хочу развернуть конкретное изображение с тегами в dev. Является ли это возможным?