0

我一直在使用jib-maven-plugin从竹容器实例构建 docker tarball 图像,然后将其推送到 ECR。

我有以下~/.m2/settings.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

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

然而,当从 dockerhub 拉取 amazoncoretto 所需的图像时,这似乎并没有使用我的帐户。

我从 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"
    }
  ]
}
4

2 回答 2

1

我找到了一种解决方法,方法是利用臂架jib.from.auth.usernamejib.from.auth.password系统参数。

mvn -Djib.from.auth.username=${bamboo.docker_hub_username} \
    -Djib.from.auth.password=${bamboo.docker_hub_password} \
    package deploy
于 2020-11-23T10:57:13.033 回答
0

docker hub 有很多别名。对于由于不包含注册表主机名而我们确定是往返于 docker 的图像,jib 使用主机名:registry-1.docker.io

代码:https ://github.com/GoogleContainerTools/jib/blob/master/jib-core/src/main/java/com/google/cloud/tools/jib/api/ImageReference.java#L38

也许在您的 Maven 设置中使用它会有所帮助?

于 2020-12-15T20:39:36.510 回答