当前位置: 首页 > 面试题库 >

如何通过Jenkins凭据进行毕业?

方野
2023-03-14
问题内容

我正在使用三角帆Gradle插件创建docker映像并将其推送到Azure容器注册表。到目前为止,我已经向Jenkins添加了用户名/密码凭据,并且需要将它们传递给Gradle。访问或将凭据传递给Gradle,它们会被屏蔽。希望您能够帮助我。以下是代码片段:

build.gradle(臂架配置):

jib {
    to {
        image = "myacr.azurecr.io/" + project.name
        tags = ["latest"]
        auth {
            // retrieve from Jenkins
            username System.properties['ACR_CREDENTIALS_USR']
            password System.properties['ACR_CREDENTIALS_PSW']
        }
    }
    container {
        jvmFlags = ["-Xms512M",  "-Xmx1G"]
        ports = ["5000/tcp", "8080/tcp"]
    }    
}

Jenkinsfile:

pipeline {
...
    environment {
        ACR_CREDENTIALS = credentials('myproject-acr') 
    }

    stages {
        ...
        stage('Push Docker Image to Registry') {
            steps {
                sh "./gradlew jib -PACR_CREDENTIALS_USR=${env.ACR_CREDENTIALS_USR} -PACR_CREDENTIALS_PSW=${env.ACR_CREDENTIALS_PSW}"
            }
        }
...

编辑:我的用户名中有错字


问题答案:

用户名中有错字。将Jenkins凭据作为环境变量传递可以按预期方式工作。这是我的代码: build.gradle(臂架配置):

jib {
    to {
        image = "myacr.azurecr.io/" + project.name
        tags = ["latest"]
        auth {
            // retrieve from Jenkins
            username "${System.env.ACR_CREDENTIALS_USR}"
            password "${System.env.ACR_CREDENTIALS_PSW}"
        }
    }
    container {
        jvmFlags = ["-Xms512M",  "-Xmx1G"]
        ports = ["5000/tcp", "8080/tcp"]
    }    
}

Jenkinsfile:

pipeline {
...
    environment {
        ACR_CREDENTIALS = credentials('myproject-acr') 
    }

    stages {
        ...
        stage('Push Docker Image to Registry') {
            steps {
                sh "./gradlew jib"
            }
        }
...


 类似资料:
  • 问题内容: 我找到了一种方法来访问Jenkins中的凭据存储区: 但是现在我想获取我不能做的适当用户的密码… 我总是得到未知的方法等,如果我尝试访问passord等。 这样做的原因是使用此用户/密码来调用git并从存储库中提取信息。 我总是得到这样的东西: 在尝试了更多(以及Jeanne Boyarsky的暗示)之后,我发现我正在考虑编译。以下内容已为我提供了用户密码: 此外,通过使用以下代码片段

  • 问题内容: 我正在尝试为使用GitHub的项目设置Jenkins- ci。我已经使用适当的插件设置了Jenkins。我希望Jenkins仅在项目上的某人推动掌握时才运行构建脚本。到目前为止,我已经能够对其进行设置,以便任何人将其推送到任何地方都可以触发构建,但这太广泛了。我已经使用Git上的接收后服务挂钩完成了此操作。 我已经阅读了詹金斯(Jenkins)Wiki和一些教程,但是缺少此特定细节…可

  • 我需要使用登录的用户凭据通过Jenkins UI执行一些Jenkins作业,例如“发布到生产”。原因是,我们有单独的支持团队成员,他们可以访问生产框,而不是开发团队成员。因此,为了将任何代码库部署到生产环境中,所有Windows部署命令(例如,创建、更新文件、文件夹等)都需要使用有权访问生产环境的特定用户凭据来运行。因此,即使是没有生产箱访问权限但是Jenkins管理员的开发团队成员,执行相同的作

  • 问题内容: 我想使用jenkins API来获取有关我当前工作的信息。我可以找到有关上一个版本()的信息,但没有看到可以让我创建进度条的字段。我看到一个字段和一个字段,但是没有任何东西告诉我它已经运行了多长时间。 问题答案: 这是为我提供所需信息的URL: 产生如下内容:

  • 问题内容: 有没有办法遍历Java SparseArray(适用于Android)?我曾经很容易通过索引来获取值。我找不到一个。 问题答案: 似乎我找到了解决方案。我没有正确注意到该功能。 因此,我将使用以下内容:

  • 问题内容: 在Eclipse中创建了一个新的标准Java 7项目,并成功地成功获取了like 的实例,如下所示: 在主要方法中,此方法运行良好,据我所知,该部分有效。但我不知道如何实际使用它。在SoapUI中,我通过以下请求调用此服务: 如何在Java中执行相同的请求?我的目标是我有一个很长的清单,我需要为每个清单运行一个这样的请求。在SoapUI中手动进行操作有点烦人,因此我想使用一个简单的Ja