我一直在使用jib-maven-plugin从竹容器实例构建docker tarball图像,然后将其推送到ECR。
我在~/中有以下服务器实例。m2/设置。位于生成器映像中的xml
:
<server>
<id>registry.hub.docker.com</id>
<username>${docker.hub.username}</username>
<password>${docker.hub.password}</password>
</server>
然后我用maven称之为:
mvn -Ddocker.hub.username=${bamboo.docker_hub_username} \
-Ddocker.hub.password=${bamboo.docker_hub_password} \
package deploy
其中部署与buildTar
jib执行目标相关联。
然而,当我从dockerhub获取AmazonCretto所需的图像时,这似乎并没有使用我的帐户。
我从jib收到以下错误。
Failed to execute goal com.google.cloud.tools:jib-maven-plugin:2.6.0:buildTar (docker-package) on project auth-server: 429 Too Many Requests
{
"errors": [
{
"code": "TOOMANYREQUESTS",
"message": "You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit"
}
]
}
我通过使用jibjib找到了一个解决方法。从…起啊。用户名
和jib。从…起啊。密码
系统参数。
mvn -Djib.from.auth.username=${bamboo.docker_hub_username} \
-Djib.from.auth.password=${bamboo.docker_hub_password} \
package deploy
docker hub有很多别名。对于我们确定要从docker发送/发送的图像,因为它们不包含注册表主机名,jib使用主机名:registry-1。码头工人。io
代码:https://github.com/GoogleContainerTools/jib/blob/master/jib-core/src/main/java/com/google/cloud/tools/jib/api/ImageReference.java#L38
也许在你的maven环境中使用它会有所帮助?