我正在使用 Maven Jib 插件将我的应用程序部署到 Gitlab docker 注册表。如果我使用 docker login registry.gitlab.com
并输入用户名和密码,我可以成功登录到 gitlab 注册表。我可以看到 ~/.docker/config.json
包含以下信息:
{
"auths": {
"https://registry.gitlab.com": {},
"registry.gitlab.com": {}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/19.03.2 (darwin)"
},
"credsStore": "desktop",
"stackOrchestrator": "swarm"
}
现在如果我尝试运行 mvn -Djib.to.auth.username=${username} -Djib.to.auth.password=${password} compile jib:build
它会失败401 未经授权的异常。我需要传递用户名和密码的原因是我想在我的 CICD 管道中运行此命令,并且需要以某种方式传递用户名和密码。我已经测试了其他方法,例如在 .m2/settings.xml
或 pom.xml
中设置凭据。它们都不起作用。
最佳答案
您可以在 jib 插件部分获得凭证,如下所示
<build>
<plugins>
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>1.0.0</version>
<configuration>
<from>
<image>openjdk:8u171-alpine</image>
</from>
<to>
<image>registry.gitlab.com/${project.build.finalName}:${project.version}</image>
<auth>
<username>${jib.username}</username>
<password>${jib.password}</password>
</auth>
</to>
</configuration>
</plugin>
<plugins>
<build>
将 jib.username
和 jib.password
作为 settings.xml 中的属性。
注意:根据需要调整从图像。
关于java - Maven Jib 插件 : 401 Unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57850321/