我们正在尝试Spring的本土化,遵循他们的指南。另外,我们希望使用Gradle和Buildpack。我们相应地调整了配置(build.gradle)并运行了./gradlew bootBuildImage,以构建SpringNative映像。
问题的出现是因为我们被迫使用我们公司的自定义码头图像注册中心。因此,我们不能直接拔出例如docker.io/paketobuildpacks/run:tiny-cnb,而是必须使用类似docker-io.docker-proxy.ourcompany.com/paketobuildpacks/run:tiny-cnb的东西.
我们已经提取并重新标记了在此过程中使用的构建器图像paketobuildpacks/builder。但是,由于其余的都发生在这个构建容器中,我们不能再使用这个解决方案了。所以我们得到:
* What went wrong:
Execution failed for task ':bootBuildImage'.
> Docker API call to 'localhost/v1.24/images/create?fromImage=docker.io%2Fpaketobuildpacks%2Frun%3Atiny-cnb' failed with status code 500 "Internal Server Error" and message "Get "https://registry-1.docker.io/v2/": context deadline exceeded"(可能是因为对*.docker.io的连接尝试只会超时。)
到目前为止,我们还没有发现配置进程使用的Docker注册表的可能性。我们还可以找到一个更大的“树”,在这个过程的后面需要更多的依赖关系,在像这里这样的文件中进行描述(其中引用了gcr.io而不是docker.io)。
绝不能让我们直接进入公共登记处,因此没有进一步的想法。那么,您能想到使用您自己的代理注册中心来实现我们构建Spring本地映像的目标的任何明智的可能性吗?
事先非常感谢!
发布于 2022-05-03 12:30:48
使用pack cli,您可以运行pack config registry-mirrors add <registry> [-m <mirror...] [flags],ex:pack config registry-mirrors add index.docker.io --mirror 10.0.0.1,其中10.0.0.1是您的私有注册中心。
在Spring的Gradle支持中,您有docker.builderRegistry和docker.publishRegistry设置,但这些设置主要用于提供用于从注册表获取或发布图像的凭据。他们不完全满足我们的需要。
像使用pack cli一样,对镜像功能的支持目前还不是一个选项。一个问题已被打开,以跟踪对此的支持。,所以希望它能在将来的版本中使用。
同时,您可以使用pack cli和上面的镜像选项来构建映像。
一种快速测试/验证的方法:
docker run -d -p 5000:5000 --restart=always --name=registry -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io registry:2。这将运行一个本地注册表,即后视镜码头枢纽。pack config registry-mirrors add '*' --mirror localhost:5000告诉pack cli使用注册表镜像。pack build。您应该看到输出如下:Using mirror localhost:5000/paketobuildpacks/builder:base for index.docker.io/paketobuildpacks/builder:base
base: Pulling from paketobuildpacks/builder
83525de54a98: Pulling fs layer
807f554cf05f: Pulling fs layer
...如果你看到那条线,你就知道它正常工作了。
您还应该在pack配置中看到这一点:
> cat ~/.pack/config.toml
[registry-mirrors]
"*" = "localhost:5000"这意味着您已经正确设置了注册表镜像。
https://stackoverflow.com/questions/72095321
复制相似问题