CloudFoundry y JDK

Sep 17 2020

Estoy luchando con la implementación de una aplicación de primavera que necesita compilar código Java durante el tiempo de ejecución. Mi aplicación llama al comando javac cuando un usuario envía una solución a un problema, para que luego pueda ejecutar java

Estoy implementando en la fundición en la nube y usando java-buildpack, pero desafortunadamente, no viene con JDK, solo JRE está disponible y esa cosa no tiene comandos javac o java disponibles.

¿Saben cómo agregar JDK a la fundición en la nube, sin tener que escribir mi propio paquete de compilación personalizado?

Gracias

Respuestas

1 DanielMikusa Sep 18 2020 at 01:17

Le sugiero que use el soporte para múltiples paquetes de compilación y use apt-buildpack para instalar un JDK. Debería funcionar bien junto con JBP. Solo necesita ser el primero en la lista.

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

Ejemplo:

  1. Cree un apt.yml.

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. Paquete que en su JAR, jar uf path/to/your/file.jar apt.yml. Debe agregarse a la raíz del JAR, por lo que jar tf path/to/your/file.jarsi debe ver solo apt.ymly nada prefijado.

  3. Actualice su manifest.yml. Agregue el apt-buildpack primero en la lista.

     ---
     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. Entonces cf push. Debería ver que apt-buildpack se ejecuta e instala el JDK. Luego se instalará debajo ~/deps/0/lib/jvm/java-11-openjdk-amd64. Tampoco parece terminar en la RUTA, así que use una ruta completa javaco actualice la ruta.