当前位置: 首页 > 知识库问答 >
问题:

在openshift中部署特定的标记图像

楚翰
2023-03-14
     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阶段,我使用构建的war文件,并使用war文件构建jboss的映像。在deploy to dev阶段,我将应用程序映像部署到dev中,并使用jenkins内部版本号标记映像${env.dev_project}/jboss:${build_number}。假设如果我的jenkins构建号是14,我想部署10,那么我如何将特定的标记映像部署到dev中。在openshift的图像中,我可以看到从1到14的所有标记图像。现在我要将特定的标记图像部署到dev中。有可能吗?

共有1个答案

龚奕
2023-03-14

您所能做的就是用您正在部署的映像的另一个版本(:latest)更改DeploymentConfig。您可以在de web控制台中通过编辑部署并从图像流JBOSS中选择另一个:标签来完成此操作。

或使用oc修补程序命令更改DC

oc patch dc--patch='{“spec”:{“template”:{“spec”:{“containers”:[{“name”:“,”image“:”image-name:tag“}]}}}}‘

 类似资料:
  • 我尝试用java做一个rest web服务,并使用OpenShift服务测试服务器。 在OpenShift中,我选择Tomcat 7(JBoss EWS 2.0)作为web服务器。 当我试图将我的文件推入服务器时,在maven构建时,它会给我这些错误: 似乎错误是关于我的tools.java文件。 所以这是我的工具.java文件的代码: 我想知道,因为当我在我的PC中使用命令时,没有错误并且项目完

  • 我不熟悉plotly,我正在使用px创建甘特图。时间表。我的数据集中有三类数据,一类是具有开始和结束时间的普通任务,另一类是开始和结束时间相同的两种类型的任务。我希望普通任务是一个矩形(这是如何绘制的),其他两个任务有一个沙漏标记和一个三角形标记,而不是一条很细的线? 这是我的数据的样子: 样本数据: 代码: 例子: Excel中的样本图 我有什么办法可以做到这一点吗? 谢谢!

  • 我是Maven和Nexus的新人。我在本地Nexus上部署maven项目(使用IntelliJ开发)时遇到了问题。您将发现附加了我的maven settings.xml 我的目标是在不修改pom.xml文件的情况下部署我的项目,只修改~/.m2/settings.xml 你知道吗? 谢谢

  • 在语法文件中的某个时候,我希望ANTLR将我的输入读取为2个标记,而不是一个。在我的源文件中,我有 Lexer消耗了 作为浮动标记。在源文件中的这个特定点上,我希望ANTLR将其读取为 12345(内景) 。(点) 姓名(name) 有没有办法告诉ANTLR它应该在某个给定点忽略浮点类型? 这是我的电流。g4文件: 我用的是https://github.com/antlr/grammars-v4/

  • 有谁能帮助我阅读作为Web服务调用响应的XML吗。 我得到的回应是这样的: 当我得到-1作为响应时,我想预先执行动作。我如何阅读它。我在GAE中使用struts,我使用

  • 我有这张图片(所有这些效果都在一个. png文件中)我想显示例如第二张图片我如何在javafx中使用Image和ImageView来显示这张图片的特定部分?谢谢