首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins Blue Ocean在参数化构建中使用凭据

Jenkins Blue Ocean在参数化构建中使用凭据
EN

Stack Overflow用户
提问于 2020-01-07 04:12:13
回答 1查看 1.2K关注 0票数 1

我在经典的Jenkins中有一个管道项目,其中我使用了一个参数化的构建,其中包含一个秘密文件(带凭据的.env文件)。这可以很好地工作,但是当我使用Blue Ocean时,我没有用于参数化构建的相同选项。这是我当前使用的Jenkinsfile,它使用一个秘密文件(BOT_SECRET)在经典的Pipeline中工作:

代码语言:javascript
复制
pipeline {
  agent any

  stages {
    stage("prepare .env") {
      environment {
        BOT_SECRET = credentials("${BOT_SECRET}")
      }
      steps {
        sh "> .env"
        sh "echo `cat $BOT_SECRET` > .env"
      }
    }
    stage("build") {
      steps {
        sh "docker build -t telegram-bot ."
      }
    }

    stage("deploy") {
      steps {
        sh "docker-compose up -d"
      }
    }
  }
}

我只找到了一个关于参数化构建的视频,但任何人都可以看到默认选项,并将其存储在Jenkinsfile中。

EN

回答 1

Stack Overflow用户

发布于 2020-01-08 01:59:48

我只是想把事情弄清楚,所以我会为那些有同样“问题”的人回答我自己的问题。感谢@Matt Schuchard为我指明了正确的方向:

我已经知道秘密的存在,但我在我的Jenkinsfile中错误地使用了它们。我没有使用参数化构建的环境变量,而是直接使用了Secret by it's ID:

代码语言:javascript
复制
pipeline {
  agent any
  stages {
    stage('prepare .env') {
      steps {
        sh "> .env"
        withCredentials([string(credentialsId: 'dice_master_env', variable: 'SECRET')]) {
          sh "echo ${SECRET} > .env"
        }
      }
    }

    stage('build') {
      steps {
        sh 'docker build -t telegram-bot .'
      }
    }

    stage('deploy') {
      steps {
        sh 'docker-compose up -d'
      }
    }

  }
}

现在,这个方法起作用了,而且凭据永远不会在git存储库中共享。最终是this short tutorial解决了我的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59618341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档