如何启用cloudbees-jenkins-distribution docker push推送到受密码保护的私有注册表?

时间:2019-04-24 01:55:28

标签: docker jenkins registry jenkins-pipeline

使用此设置,一切正常,直到我启用htpasswd

据我所知,一切均已正确配置,因此,如果确实如此;那是一个bug吗?我在管道控制台输出中注意到,它指向我实际使用过withDockerRegistry的{​​{1}}。

配置

要清楚,此设置是jenkins可以推送到的不安全的私人注册表。没有,也曾经没有SSL设置。唯一的区别是启用了withRegistry

注册表配置

  • 我正在从VirtualBox虚拟机中运行注册表,该虚拟机使用来自无业游民的htpasswd映像运行
  • VM已配备docker,并且正在运行docker
  • 注册表通过ubuntu/bionic64网络中的registry:2映像在容器中运行
  • 可通过nginx-proxy访问注册表,我的http://registry.exp文件的host指向我的registry.exp,位于VM IP
  • 使用10.20.1.29通过htpasswd配置了注册表
  • 我可以从浏览器登录。

Jenkins配置

  • 我正在从docker run --entrypoint htpasswd registry:2 -Bbn {{htpasswd_user}} {{htpasswd_pw}} >> /registry/auth/htpasswd映像在Mac上的docker中运行jenkins。
  • Jenkins可通过cloudbees/cloudbees-jenkins-distribution
  • 访问
  • 我已将我的用户名和密码添加到localhost:8080的Jenkins凭据中,并以http://registry.exp的ID进行保存

应用配置

  • 我在github服务器上配置了registry-login
  • example-app有一个example-app和一个Dockerfile

我可以在本地计算机上完成

  • Jenkinsfile
  • docker build -t example-app --no-cache .
  • docker login --username docker registry.exp

我的Jenkinsfile看起来像这样

docker push registry.exp/example-app
从詹金斯奔跑 在拉下github存储库并构建docker映像后,用jenkins的

pipeline { agent any stages { stage('Deploy Image') { steps{ script { docker.withRegistry('http://registry.exp', 'registry-login'){ docker.build('example-app').push('latest') } } } } } }

Console Output

0 个答案:

没有答案