问题
I'm using the jib Gradle plugin to create a docker image and push it to the Azure Container Registry. I've added username/password credentials to Jenkins so far and need to pass them to Gradle. Accessing or passing the credentials to Gradle, they get masked. Hope you can help me. Here're the code snippets:
build.gradle (jib configuration):
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}"
}
}
...
EDIT: I had a typo in my username
回答1:
I had a typo in the username. Passing Jenkins credentials as environment variables works as expected. Here's my code: build.gradle (jib configuration):
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"
}
}
...
来源:https://stackoverflow.com/questions/58562224/how-do-i-pass-jenkins-credentials-to-gradle