CloudFoundry et JDK

Sep 17 2020

J'ai du mal avec le déploiement d'une application de printemps qui doit compiler du code java pendant l'exécution. Mon application appelle la commande javac lorsqu'un utilisateur soumet une solution à un problème, afin de pouvoir exécuter java ultérieurement

Je déploie sur Cloud Foundry et utilise le java-buildpack, mais malheureusement, il ne vient pas avec JDK, seul JRE est disponible et cette chose n'a pas de commandes javac ou java disponibles.

Connaissez-vous un moyen d'ajouter JDK à la fonderie de cloud, sans avoir à écrire mon propre buildpack personnalisé.

Merci

Réponses

1 DanielMikusa Sep 18 2020 at 01:17

Je vous suggère d'utiliser le support multi-buildpack et d'utiliser apt-buildpack pour installer un JDK. Cela devrait fonctionner correctement avec le JBP. Il doit juste être le premier dans la liste.

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

Exemple:

  1. Créez un fichier apt.yml.

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. Bundle qui dans votre JAR, jar uf path/to/your/file.jar apt.yml. Il devrait être ajouté à la racine du JAR, donc si vous jar tf path/to/your/file.jarvoyez juste apt.ymlet rien de préfixé.

  3. Mettez à jour votre manifest.yml. Ajoutez d'abord apt-buildpack dans la liste.

     ---
     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. Alors cf push. Vous devriez voir l'exécution d'apt-buildpack et installer le JDK. Il sera ensuite installé sous ~/deps/0/lib/jvm/java-11-openjdk-amd64. Il ne semble pas non plus se retrouver sur le PATH, utilisez donc un chemin complet javacou mettez à jour le chemin.