JHipster 现在使用 maven-jib-plugin。在此之前,我在 docker-container 中运行的 jenkins 服务器能够使用 *.war 文件构建 docker 映像,并使用“Jenkinsfile”(对于 gradle,但我切换了)通过管道将其推送到我自己的 docker-registry到 Maven),作业完成后,另一个作业通过使用 ssh 在远程主机上执行 shell 脚本,将新构建的 docker-image 拉入我服务器上的新 docker-container 中。
这项任务的阶段是:
def dockerImage
stage('build docker') {
sh "cp -Rvvv src/main/docker build/"
sh "cp -vvv build/libs/*.war build/docker/"
dockerImage = docker.build("$IMAGE_NAME:$IMAGE_TAG", "build/docker")
}
stage('publish docker') {
docker.withRegistry("$REGISTRY_URL", "$REGISTRY_USER") {
dockerImage.push "$IMAGE_TAG"
}
}
stage('Remove Unused docker image') {
sh "docker rmi $IMAGE_NAME:$IMAGE_TAG"
}
现在据我所知jib
使其变得更容易以及相关部分Jenkinsfile
生产与$ jhipster ci-cd
归结为
def dockerImage
stage('publish docker') {
sh "./mvnw -ntp jib:build -Dimage=$REGISTRY/$IMAGE_NAME:$IMAGE_TAG -Djib.to.auth.username=$REGISTRY_USER"
}
很遗憾jib
似乎不再使用给定 $REGISTRY_USER 的 docker-registry 用户登录凭据,这些凭据与之前在 Jenkins 中运行的 docker 守护进程一样保存在 Jenkins 的“凭据”部分中。
我怎样才能告诉jib
-jenkins 管道中的插件,以使用存储在我的 jenkins 帐户中的 docker-registry-login 的凭据,我认为这是一个安全的解决方案?我不希望在每个客户端或 github 上处理凭据(尤其是密码)。
通过环境变量提供凭据的一种方法是使用withCredentials()
按照以下方式,如所暗示的这条评论.
def dockerImage
stage('publish docker') {
withCredentials([usernamePassword(credentialsId: 'myregistry-login', passwordVariable: 'DOCKER_REGISTRY_PWD', usernameVariable: 'DOCKER_REGISTRY_USER')]) {
// assumes Jib is configured to use the environment variables
sh "./mvnw -ntp jib:build"
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)