CloudFoundry 和 JDK

CloudFoundry and JDK

我正在努力部署需要在 运行 期间编译 java 代码的 spring 应用程序。当用户提交问题的解决方案时,我的应用会调用 javac 命令,因此它可以稍后 运行 java

我正在部署到 cloud foundry 并使用 java-buildpack,但不幸的是,它没有 JDK,只有 JRE 可用而且那个东西没有 javac 或 java 命令可用。

你们知道如何将 JDK 添加到 cloud foundry 而无需编写我自己的自定义构建包的方法吗?

谢谢

我建议您使用 multi-buildpack 支持并使用 apt-buildpack 安装 JDK。它应该可以与 JBP 一起正常工作。它只需要在列表中排在第一位。

https://github.com/cloudfoundry/apt-buildpack

示例:

  1. 创建 apt.yml。

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. 将其打包到您的 JAR 中,jar uf path/to/your/file.jar apt.yml。它应该被添加到 JAR 的根目录,所以如果你 jar tf path/to/your/file.jar 你应该只看到 apt.yml 而没有任何前缀。

  3. 更新您的 manifest.yml。在列表中首先添加 apt-buildpack。

     ---
     applications:
     - name: spring-music
       memory: 1G
       path: build/libs/spring-music-1.0.jar
       buildpacks:
       - https://github.com/cloudfoundry/apt-buildpack#v0.2.2
       - java_buildpack
    
  4. 然后cf push。您应该看到 apt-buildpack 运行 并安装 JDK。然后它将安装在 ~/deps/0/lib/jvm/java-11-openjdk-amd64 下。它似乎也没有出现在 PATH 上,因此请使用 javac 的完整路径或更新路径。