带有Jenkins脚本化管道的Jib-Maven-plugin:如何登录到私有docker Registry?

问题描述 投票:0回答:1

关于this problem,我使用脚本化的Jenkins管道更新了我的JHipster-Application,现在位于Jenkinsfile(部分位于these hints之后:]

[...]

 def dockerImage
    withEnv(["DOCKER_CREDS=credentials('myregistry-login')"]) {
        stage('publish docker') {
            sh "./mvnw -X -ntp jib:build"
        }
    }

[使用Jenkins全局凭据myregistry-login保存在我的Jenkins服务器中,并保存到我自己的Docker注册表v2 docker-container https://myregistry.mydomain.com(出于安全原因更改了域)。我可以使用存储在$ docker login myregistry.mydomain.com中的用户名和密码从本地bash成功完成docker login https://myregistry.mydomain.com(以及docker login myregistry.mydomain.com:443myregistry-login)。

pom.xml中(在these hints以及thisthisthis之后:]

<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
  <configuration>
    <to>
      <image>myregistry.mydomain.com:443/username/imagename</image>
      <tags>
        <tag>${maven.build.timestamp}</tag>
        <tag>latest</tag>
      </tags>
      <auth>
        <username>${env.DOCKER_CREDS_USR}</username>
        <password>${env.DOCKER_CREDS_PSW}</password>
      </auth>
    </to>
    <container>
      <jvmFlags>
        <jvmFlag>-Xms512m</jvmFlag>
        <jvmFlag>-Xmx1G</jvmFlag>
        <jvmFlag>-Xdebug</jvmFlag>
      </jvmFlags>
      <mainClass>de.myproject_name.MyApp</mainClass>
    </container>
  </configuration>
</plugin>

这里usernameimagenamede.myproject_name.MyApp是占位符。

不幸的是我得到

[DEBUG] TIMING  Retrieving registry credentials for myregistry.mydomain.com:443
[DEBUG] No credentials could be retrieved for registry myregistry.mydomain.com:443
[...]
[ERROR] I/O error for image [myregistry.mydomain.com:443/username/imagename]:
[ERROR]     Connect to myregistry.mydomain.com:443 [myregistry.mydomain.com/xxx.xxx.xxx.xxx] failed: Connection refused (Connection refused)
[DEBUG] TIMED   Authenticating push to myregistry.mydomain.com:443 : 460.0 ms
[DEBUG] TIMED   Building and pushing image : 514.0 ms
[ERROR] I/O error for image [registry-1.docker.io/library/adoptopenjdk]:
[ERROR]     Socket closed

所以withEnv不会转发到Maven和/或臂架Maven插件没有读取<auth> -Tag,对吗?我仍然在做错什么?为何registry-1.docker.io出现I / O错误?

关于此问题,我使用脚本化的Jenkins管道更新了我的JHipster-Application,现在已经在Jenkinsfile中(部分遵循这些提示):[...] def dockerImage withEnv([“ DOCKER_CREDS = ...

maven docker jenkins-pipeline jhipster jib
1个回答
0
投票

最后,我已经开始工作了。

© www.soinside.com 2019 - 2024. All rights reserved.