Ibm cloud 在bluemix上添加我自己的jar文件作为javaagent

Ibm cloud 在bluemix上添加我自己的jar文件作为javaagent,ibm-cloud,Ibm Cloud,我想在bluemix上制作一个定制的buildpack,作为其中的一部分,我正在尝试添加我自己的jar文件作为javaagent。我曾经与Tomcat合作,在那里我刚刚将额外的代理添加到catalina.sh脚本中 在bluemix上,我采取了以下步骤: 我创建了一个新项目并上传了我的代码 我将默认的java构建包克隆到自己的git存储库中 在存储库中,我在/lib/java_buildpack文件夹中添加了.jar文件 现在是我遇到问题的步骤,我找到了: java_opts.add_javaa

我想在bluemix上制作一个定制的buildpack,作为其中的一部分,我正在尝试添加我自己的jar文件作为javaagent。我曾经与Tomcat合作,在那里我刚刚将额外的代理添加到
catalina.sh
脚本中

在bluemix上,我采取了以下步骤:

  • 我创建了一个新项目并上传了我的代码
  • 我将默认的java构建包克隆到自己的git存储库中
  • 在存储库中,我在/lib/java_buildpack文件夹中添加了.jar文件
  • 现在是我遇到问题的步骤,我找到了:

    java_opts.add_javaagent(@droplet.sandbox + 'javaagent.jar')
    
    函数调用,根据评论,这正是我要寻找的

  • 问题是,当我检查函数时,我看到它调用了以下函数:

    qualify_path(path, root = @droplet_root)
    "$PWD/#{path.relative_path_from(root)}"
    
    我不知道这个@droplet\u根位置在哪里,如果我能找到它,我可以把我的jar文件上传到那里

    我试着像这样添加相对位置:

    java_opts << "java_buildpack/myAgent.jar"
    

    java_选择分叉构建包是实现这一点的一种方法。您可以在Java构建包中将其作为“框架”实现。下面是一些您可以参考的示例,它们还添加了一个代理jar:


    另一个简单的方法是简单地将代理jar添加到应用程序包中,然后使用Java_OPTS环境变量添加一个Java选项来启用代理。这要求您找出代理jar在正在运行的应用程序容器中的最终路径。您可以使用“cf文件”浏览到它。这将依赖于液滴的内部结构,因此如果buildpack更改液滴结构,它可能会被破坏。

    您好,谢谢您的回答,我打开了示例,从我看到的情况来看,它们使用了您在最后指定的方式。这就是我试图做的,但它不起作用,我将我的jar文件放在lib/java\u buildpack/file.jar,并尝试以以下方式将其添加到框架库中的new\u relic\u agent.rb文件中:添加行:
    .add\u javaagent(@droplet.sandbox+'lib/java\u buildpack/gbAgent.jar')
    。但它似乎不起作用。如何检查javaagent是否已更新?(检查是否是路径问题或工作问题)第一个选项和第二个选项之间的区别是第二个选项根本不需要更改构建包代码。JAVA_OPTS是一个应用程序环境变量,您可以使用“cf set env”设置它。要使第一种方法起作用,您还需要查看以下代码:这是由new_relic和jrebel代理继承的。您需要一个配置文件,如