CloudFoundry e JDK

Sep 17 2020

Sto lottando con la distribuzione di un'app primaverile che deve compilare codice Java durante il runtime. La mia app chiama il comando javac quando un utente invia una soluzione a un problema, in modo che possa successivamente eseguire java

Sto distribuendo su cloud foundry e utilizzo java-buildpack, ma sfortunatamente non viene fornito con JDK, solo JRE è disponibile e quella cosa non ha comandi javac o java disponibili.

Ragazzi, conoscete un modo su come aggiungere JDK al cloud foundry, senza dover scrivere il mio buildpack personalizzato.

Grazie

Risposte

1 DanielMikusa Sep 18 2020 at 01:17

Suggerirei di utilizzare il supporto multi-buildpack e utilizzare apt-buildpack per installare un JDK. Dovrebbe funzionare bene insieme al JBP. Deve solo essere il primo della lista.

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

Esempio:

  1. Crea un file apt.yml.

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. Bundle che nel vostro JAR, jar uf path/to/your/file.jar apt.yml. Dovrebbe essere aggiunto alla radice del JAR, quindi se jar tf path/to/your/file.jardovresti vedere solo apt.ymle nulla prefisso ad esso.

  3. Aggiorna il tuo manifest.yml. Aggiungi apt-buildpack per primo nell'elenco.

     ---
     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. Allora cf push. Dovresti vedere apt-buildpack eseguire e installare JDK. Sarà quindi installato sotto ~/deps/0/lib/jvm/java-11-openjdk-amd64. Non sembra nemmeno finire sul PERCORSO, quindi usa un percorso completo javaco aggiorna il percorso.