gpt4 book ai didi

docker - 如何根据分支名称在Jenkins中更改Agent标签

转载 作者:行者123 更新时间:2023-12-02 18:29:49 25 4
gpt4 key购买 nike

我正在为以下任务创建一个詹金管道。

  • vsts
  • 中获取最新代码
  • 构建代码并从中创建.jar文件
  • 基于jar
  • 创建Docker镜像
  • 标记图像
  • 将镜像推送到Docker注册表

  • 为此,我在下面写了Jenkinsfile
    pipeline {
    agent {
    label "master"
    }

    stages {
    stage('Build') {
    steps {
    echo '..........................Building Jar..........................'
    sh 'npm install'

    }
    }
    stage('Build-Image') {
    steps {
    echo '..........................Building Image..........................'
    sh 'sudo docker build -t some-org/admin-portal:v0.1 --build-arg PORT=9007 --build-arg ENVIRONMENT=develop .'
    }
    }
    stage('Tag-Image') {
    steps {
    echo '..........................Taging Image..........................'
    sh 'sudo docker login some-repo -u username001 -p password'
    sh 'sudo docker tag some-org/admin-portal:v0.1 some.dtr.io/some-org/admin-portal:v0.1'
    }
    }
    stage('Push-Image') {
    steps {
    echo '..........................Pushing Image..........................'
    sh 'sudo docker push some.dtr.io/some-org/admin-portal:v0.1'
    }
    }
    }
    }

    以下是管道的Jenkins作业配置快照

    enter image description here

    我的问题是如何根据分支名称或某些条件更改代理标签。

    例如,如果分支是 ,请开发我要使用 slave1 节点,如果分支是 生产,我想使用

    任何帮助将是可观的。

    提前致谢。

    最佳答案

    您可以在阶段内部分配代理标签,以便可以对所需的代理执行阶段。

    例如:

    pipeline {
    agent none

    stages {
    stage('Build') {
    agent {
    label "master"
    }
    steps {
    echo '..........................Building Jar..........................'
    sh 'npm install'

    }
    }
    stage('Build-Image') {

    agent {
    label "master"
    }
    steps {
    echo '..........................Building Image..........................'
    sh 'sudo docker build -t some-org/admin-portal:v0.1 --build-arg PORT=9007 --build-arg ENVIRONMENT=develop .'
    }
    }
    stage('Tag-Image') {

    agent {
    label "slave1"
    }
    steps {
    echo '..........................Taging Image..........................'
    sh 'sudo docker login some-repo -u username001 -p password'
    sh 'sudo docker tag some-org/admin-portal:v0.1 some.dtr.io/some-org/admin-portal:v0.1'
    }
    }
    stage('Push-Image') {

    agent {
    label "slave1"
    }
    steps {
    echo '..........................Pushing Image..........................'
    sh 'sudo docker push some.dtr.io/some-org/admin-portal:v0.1'
    }
    }
    }
    }

    关于docker - 如何根据分支名称在Jenkins中更改Agent标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50834747/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com