提问者:小点点

jib maven插件如何向docker hub进行身份验证并发布到ECR?


我一直在使用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

其中部署与buildTarjib执行目标相关联。

然而,当我从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"
    }
  ]
}

共2个答案

匿名用户

我通过使用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环境中使用它会有所帮助?