CloudFoundry e JDK

Sep 17 2020

Estou lutando com a implantação de um aplicativo Spring que precisa compilar o código Java durante o tempo de execução. Meu aplicativo chama o comando javac quando um usuário envia uma solução para um problema, para que posteriormente possa executar o java

Estou implantando em cloud foundry e usando o java-buildpack, mas infelizmente não vem com JDK, apenas JRE está disponível e essa coisa não tem comandos javac ou java disponíveis.

Vocês conhecem uma maneira de adicionar JDK ao cloud foundry, sem ter que escrever meu próprio buildpack personalizado.

obrigado

Respostas

1 DanielMikusa Sep 18 2020 at 01:17

Eu sugeriria que você use o suporte multi-buildpack e use o apt-buildpack para instalar um JDK. Deve funcionar bem junto com o JBP. Ele só precisa ser o primeiro da lista.

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

Exemplo:

  1. Crie um apt.yml.

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. Empacote isso em seu JAR jar uf path/to/your/file.jar apt.yml,. Deve ser adicionado à raiz do JAR, portanto, se jar tf path/to/your/file.jarvocê deve ver apenas apt.ymle nada prefixado a ele.

  3. Atualize seu manifest.yml. Adicione o apt-buildpack primeiro na 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. Então cf push. Você deve ver o apt-buildpack rodar e instalar o JDK. Em seguida, ele será instalado em ~/deps/0/lib/jvm/java-11-openjdk-amd64. Ele também não parece terminar no PATH, portanto, use um caminho completo javacou atualize o caminho.