【问题标题】:paketo-buildpack spring-boot bootBuildImage ca-certificates binding issuepaketo-buildpack spring-boot bootBuildImage ca-certificates 绑定问题
【发布时间】:2022-10-19 03:36:22
【问题描述】:

我正在尝试将ca-certificatespem 文件)附加到 spring-boot gradle 插件(buildpacks)生成的 docker 映像。我使用的命令是./gradlew bootBuildImage。这在本地运行良好并且正在添加证书,但是当我从我的 gitlab 管道运行它时,我收到以下错误:

我向管道添加了一些日志记录,似乎即使文件(pem 和类型)存在并且具有适当的权限,管道运行器也可能无法访问这些文件,因此它失败了。我看不到如何以不同的方式添加文件或在构建器中执行命令以通过 wget/curl 获取它们。

这是我的build.gradle 配置:

pem 文件的存储方式如下:

该错误不是很有帮助,文档也不是很好。欢迎任何想法。

我已经添加了

    environment = [
        "BP_LOG_LEVEL": "debug"
]

/platform 相关部分(除了最初共享的日志)在这里(提到了几次):

编辑:我要添加的证书是 AWS RDS 的。我确实尝试更改 buildpacks 构建器映像以尝试使用更合适的(采用)映像(包含 AWS 根证书)https://bugs.openjdk.org/browse/JDK-8233223,但没有运气。

我的印象是这是一个 gitlab 问题,并且已经开始探索以不同的方式将 pem 文件传递​​给 EKS pod。也许通过 SERVICE_BINDING_ROOT 和 k8s 机密。

【问题讨论】:

  • 你能链接到你的完整构建日志吗?截图信息不够。谢谢
  • @Daniel Mikusa 构建日志没有更多内容。重要的部分已经提供。我的印象是 gitlab ci 设置可能不允许将绑定文件安装到构建器映像,即使文件存在并且具有正确的权限:/
  • 尝试将环境变量添加到您的build.gradle 配置BP_LOG_LEVEL=debug。这应该会触发 buildpacks 输出大量附加信息。我想也许您已经启用了该功能,但如果您所看到的只是图形中的内容,那么它没有启用。这将为您提供页面和页面的输出,包括/platform 的实际内容,因此您将能够查看绑定是否存在。
  • @DanielMikusa 我已经编辑了问题并添加了一些额外的日志记录截图:` [creator] Platform Bindings: [{Name: ca-certificates Path: /platform/bindings/ca-certificates Type: Provider: Secret: []}]`
  • 是的,听起来你在正确的轨道上,怀疑 Gitlab CI。绑定无法正常工作。正在进行卷装载,因为它创建了ca-certificates 文件夹,但由于某种原因,卷装载为空。显示“平台内容”的行将列出绑定中的所有文件并且它是空的。不幸的是,我不知道为什么会发生这种情况,也许其他人可能知道。

标签: spring-boot certificate paketo


【解决方案1】:

这个blog 描述了 gitlab 管道上的问题。

【讨论】:

    猜你喜欢
    • 2021-09-15
    • 2021-08-08
    • 2023-01-31
    • 2020-09-11
    • 2021-03-12
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多