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

将jmx_prometheus_javaagent加入JIB构建时报JAR manifest缺失错误如何解决

问题根因与解决方案

核心配置缺失

你编写的copyJmxPrometheusJavaAgent任务仅把agent包和配置文件复制到了本地构建目录$buildDir/jib-extra下,但是没有配置JIB将该目录的内容同步到最终镜像的文件系统中,导致镜像内根本不存在/srv/jmx_prometheus_javaagent-0.16.1.jar文件,触发文件打开失败、manifest缺失的报错。

完整修复配置

修改你的build.gradle.kts配置,新增JIB的extraDirectories规则,同时修正子项目对根项目变量的引用逻辑:

val jibExtraDir = file("$buildDir/jib-extra")
val jibAppRoot = "/srv"
// 向子项目暴露全局变量
ext.set("jibAppRoot", jibAppRoot)
ext.set("jibExtraDir", jibExtraDir)

val copyJmxPrometheusJavaAgent by tasks.registering(Copy::class) {
    val jarName = "jmx_prometheus_javaagent-0.16.1.jar"
    val configName = "jmx_prometheus_config.yaml"
    from("${project.projectDir.absolutePath}/resources/jmx-prometheus")
    into("$jibExtraDir/$jibAppRoot")
    doLast {
        // 兼容可复现构建要求
        file("$jibExtraDir/$jibAppRoot/$jarName").setLastModified(0)
        file("$jibExtraDir/$jibAppRoot/$configName").setLastModified(0)
    }
}

subProjects {
    plugins.withType<JibPlugin>().configureEach {
        container {
            jvmFlags = listOf(
                "-javaagent:${rootProject.ext.get("jibAppRoot")}/jmx_prometheus_javaagent-0.16.1.jar=8099:${rootProject.ext.get("jibAppRoot")}/jmx_prometheus_config.yaml"
            )
            // 可选:如果需要对外暴露metrics端口可放开以下配置
            // ports = listOf("8080", "8099")
        }
        // 新增:将本地jib-extra目录的内容同步到镜像根路径
        extraDirectories {
            paths {
                path(rootProject.ext.get("jibExtraDir") as File) {
                    into = "/"
                }
            }
        }
        tasks.withType<JibTask> {
            dependsOn(rootProject.tasks.named("copyJmxPrometheusJavaAgent"))
        }
    }
}

验证方法

构建镜像后执行以下命令确认文件已正确打入镜像:

docker run --entrypoint ls <你的镜像地址> /srv

如果输出包含jmx_prometheus_javaagent-0.16.1.jar和jmx_prometheus_config.yaml即代表配置生效。

其他排查点

  • 确认本地resources/jmx-prometheus目录下的jar包完整,可重新下载官方版本替换损坏的本地文件
  • 确认JIB使用的基础镜像运行用户对/srv目录有可读权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:18:03