当前位置: 首页 > 知识库问答 >
问题:

带有私有回购的Spring Boot Gradle bootBuildImage任务

常波
2023-03-14
[creator]     unable to invoke layer creator
[creator]     unable to contribute spring-cloud-bindings layer
[creator]     unable to get dependency spring-cloud-bindings
[creator]     unable to download https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0.jar
[creator]     unable to request https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0.jar
repositories {
    // Other repositories...
    //
    
    maven {
        url "<my nexus server>/repository/spring-io-releases/"
    }

我错过了什么?

共有1个答案

方宏才
2023-03-14

我有一个类似的问题,我需要配置Spring Boot build image Goal/Task中使用的bellsoft-liberica JDK的下载uri,不使用GitHub.com,而是使用我自己的私人服务器。这不能单独用buildpack环境变量来完成,但可以为此使用绑定!

请注意,对于Spring Boot Gradle插件或Spring Boot Maven插件,它需要Spring Boot2.5+(2.5中添加了bindings选项)。如果您使用的是较旧的Spring Boot版本,则需要升级或切换到pack CLI。

绑定可以通过卷或Kubernetes秘密进行配置。我创建了一个关于如何使用绑定来更改构建包中使用的uri的完全可理解的指南--但我将概述切换Spring-cloud-bindings-x.y.z.jar uri的关键步骤:

为了将绑定配置移交给packCLI,我们需要首先创建一个目录:

mkdir spring-cloud-config && cd spring-cloud-config

2.创建包含绑定键的文件类型

现在我们需要在这个目录中创建一个名为type的文件,该文件包含spring-boot buildpack绑定类型Dependency-Mapping的绑定键:

echo "dependency-mapping" >> type
[[metadata.dependencies]]
id      = "spring-cloud-bindings"
name    = "Spring Cloud Bindings"
version = "1.7.0"
uri     = "https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0.jar"
sha256  = "e3c18bf1a3c2e52743f9ff2fa46af59e5eee0a7f0683ff562eb35aa866e4a9e9"
stacks  = [ "io.buildpacks.stacks.bionic", "org.cloudfoundry.stacks.cflinuxfs3" ]

此文件必须包含您的内部连接的uri。spring-cloud-bindings.jar:

echo "http://<my nexus server>/repository/spring-io-releases/org/springframework/cloud/spring-cloud-bindings/1.7.0/spring-cloud-bindings-1.7.0.jar" >> e3c18bf1a3c2e52743f9ff2fa46af59e5eee0a7f0683ff562eb35aa866e4a9e9

4.使用--volume执行pack CLI以使用绑定

最后,我们可以发出packCLI命令。确保系统上安装了pack CLI:

pack build your-application-name-here \
    --path . \
    --volume $(pwd)/spring-cloud-config:/platform/bindings/spring-cloud-config \
    --builder paketobuildpacks/builder:base
 类似资料:
  • 我已经复制了这个代码,似乎是各种工作dockerfile周围,这里是我的: 这给了我错误 这是我第一次使用dockerfile,但是从我所读到的(以及从工作配置中获取的),我不明白为什么这不起作用。 我的id_rsa和我的dockerfile在同一个文件夹中,是我的本地密钥的副本,可以克隆这个回购没有问题。 编辑: 在我的dockerfile中,我可以添加: 它打印出正确的密钥,所以我知道它被正确

  • 尝试使用API访问Github组织的私有存储库中的文件,我是该组织的成员。到目前为止,尝试了几种不同的方法: 1.如果我使用用户名/密码方法- 它工作正常,但是我试图从一个协作的Rails应用程序访问repos,所以我不想公开我的github登录凭据。我想创建一个具有访问权限的虚拟GH帐户并使用这些凭据是可能的,但这绝对不理想... 2.因此,我查看了API文档中的OAuth2 Secret/Ke

  • 在github文档中找不到任何东西,在这里也找不到。但是我想知道是否可以有一个用于名为的私有存储库,该存储库可以访问,只有一个人可以访问存储库本身。 我记得曾经读过一些关于github页面总是公开的东西,但似乎再也找不到了。

  • 我似乎找不到办法来做这件事。这有可能吗?既然这对我来说有点重要,那么有没有一个代码管理平台可以做到这一点呢?

  • 问题内容: 我创建了两个Docker容器。第一个提供专用的Docker注册表,第二个提供官方Docker注册表的镜像: 现在,我想将两者结合起来。每当用户 提取 图像时,都应首先查询私有注册表,然后查询镜像。当图像被 推送时, 它们仅应被推送到私有注册表。 我不知道如何做到这一点。任何帮助表示赞赏。 问题答案: 您不能仅仅强制所有 docker push 命令推送到您的私有注册表。原因之一是您可以

  • 问题内容: 尽管我看到了很多类似问题的答案,但我无法使以下代码正常工作: 我希望在C:\ User \ user_id下获得所有“ somefile.xml”的路径列表,以及该路径下的所有子目录。但是hasNext()方法每次都返回false。 问题答案: 仅迭代您提供的目录并匹配该目录中的条目。它 不在 任何子目录中查找。 您需要使用walkXXXX方法之一来查看所有目录。例如: