如何通过 Jenkins 使用令牌身份验证将 docker 图像推送到人工制品中?
How to push docker image in artifactory with token authentication via Jenkins?
我们为 CI 进程运行 artifactory 和 jenkins。现在我们使用标准 username/password 凭据登录 artifactory。想使用令牌登录。我在 artifactory 中生成了令牌并将其添加到 Jenkins。
部分代码 Jenkins 流水线:
// Build a Docker image
stage ('Build a Docker image') {
docker.withRegistry("https://${params.DOCKER_REGISTRY}", params.DOCKER_REGISTRY_CREDS) {
def img = docker.build("${docker_tag}:${build_version}", "--build-arg VERSION=${params.DOCKER_BUILD_VERSION} -f ${dockerfile} ." )
try {
img.push()
docker_push_rmi(img, docker_tag, "${params.DOCKER_BUILD_VERSION}.latest")
docker_push_rmi(img, docker_tag, "latest")
} finally {
sh "docker rmi ${docker_tag}:${build_version}"
}
}
}
其中 DOCKER_REGISTRY_CREDS - username/password 用于人工登录。
如何将其转换为令牌访问?
尝试使用令牌作为密码并使用令牌创建者的用户名。
我们为 CI 进程运行 artifactory 和 jenkins。现在我们使用标准 username/password 凭据登录 artifactory。想使用令牌登录。我在 artifactory 中生成了令牌并将其添加到 Jenkins。 部分代码 Jenkins 流水线:
// Build a Docker image
stage ('Build a Docker image') {
docker.withRegistry("https://${params.DOCKER_REGISTRY}", params.DOCKER_REGISTRY_CREDS) {
def img = docker.build("${docker_tag}:${build_version}", "--build-arg VERSION=${params.DOCKER_BUILD_VERSION} -f ${dockerfile} ." )
try {
img.push()
docker_push_rmi(img, docker_tag, "${params.DOCKER_BUILD_VERSION}.latest")
docker_push_rmi(img, docker_tag, "latest")
} finally {
sh "docker rmi ${docker_tag}:${build_version}"
}
}
}
其中 DOCKER_REGISTRY_CREDS - username/password 用于人工登录。
如何将其转换为令牌访问?
尝试使用令牌作为密码并使用令牌创建者的用户名。