关于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:443
和myregistry-login
)。
在pom.xml
中(在these hints以及this,this和this之后:]
<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>
这里
username
,imagename
和de.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 = ...
最后,我已经开始工作了。