You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成New Relic Agent时license_key为空问题求助

问题描述

启动Spring Boot应用时出现New Relic Agent报错:

ERROR: license_key is empty in the config. Not starting New Relic Agent

应用本身可正常运行,但无法完成New Relic Agent与模块的集成。相关配置与环境信息如下:

build.gradle.kts 配置

tasks.named<org.springframework.boot.gradle.tasks.bundling.BootBuildImage>("bootBuildImage") {
    buildpacks(listOf("urn:cnb:builder:paketo-buildpacks/java", "docker.io/paketobuildpacks/new-relic"))
    bindings(listOf("/home/XX/Desktop/new_relic/odata-api/bindings/new-relic:/platform/bindings/new-relic"))
}

Docker启动命令

docker run -p 9090:9090  --volume /home/XX/Desktop/new_relic/odata-api/bindings/new-relic:/platform/bindings/new-relic -e JAVA_OPTS="-DDATABASE_URL=XX -DDATABASE_NAME=XX -DDATABASE_USER=XX -DDATABASE_PORT=1433 -DDATABASE_PASSWORD=XX -DDATABASE_SCHEMA=XX" XXX:32.0.0

技术栈:Spring Boot + Kotlin(build.gradle.kts)+ Docker,部署环境为Azure。


解决方案

以下是针对license_key为空问题的排查与修复步骤:

1. 核对绑定目录的文件结构与内容

Paketo New Relic Buildpack要求绑定目录(容器内/platform/bindings/new-relic)必须包含名为license_key的文件,文件内容为纯New Relic许可证密钥,不能带有多余空格、换行或其他字符。

  • 检查本地绑定目录/home/XX/Desktop/new_relic/odata-api/bindings/new-relic下是否存在license_key文件
  • 执行cat /home/XX/Desktop/new_relic/odata-api/bindings/new-relic/license_key,确认输出为纯净的密钥字符串

2. 验证Docker卷挂载有效性

启动容器时的--volume参数需确保本地目录正确映射到容器内路径:

  • 进入运行中的容器检查挂载状态:
    docker exec -it <容器ID> /bin/sh
    # 查看目录是否存在
    ls /platform/bindings/new-relic
    # 验证密钥文件内容
    cat /platform/bindings/new-relic/license_key
    

若容器内无此文件或内容为空,说明挂载路径有误,需核对本地路径与容器内路径的一致性。

3. 直接通过环境变量注入许可证密钥

如果绑定方式不生效,可跳过卷挂载,直接在Docker启动命令中传递New Relic环境变量:

docker run -p 9090:9090 \
  -e NEW_RELIC_LICENSE_KEY="你的New Relic许可证密钥" \
  -e NEW_RELIC_APP_NAME="你的应用名称" \
  -e JAVA_OPTS="-DDATABASE_URL=XX -DDATABASE_NAME=XX -DDATABASE_USER=XX -DDATABASE_PORT=1433 -DDATABASE_PASSWORD=XX -DDATABASE_SCHEMA=XX" \
  XXX:32.0.0

这种方式无需依赖文件挂载,直接将密钥传递给Agent,兼容性更强且不易出错。

4. 检查Buildpack版本兼容性

确保使用的Paketo New Relic Buildpack版本与Spring Boot版本匹配,避免因版本兼容问题导致配置读取失败:

  • 可指定具体版本的Buildpack,例如:
    buildpacks(listOf("urn:cnb:builder:paketo-buildpacks/java", "docker.io/paketobuildpacks/new-relic:1.17.0"))
    

5. Azure部署环境的配置校验

若在Azure容器实例或App Service上部署:

  • 若使用卷挂载,需确认Azure存储卷已正确配置并挂载到容器的/platform/bindings/new-relic路径
  • 若使用环境变量,需在Azure控制台中正确设置NEW_RELIC_LICENSE_KEY和NEW_RELIC_APP_NAME环境变量

内容的提问来源于stack exchange,提问作者Sahu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:02:57