CloudFoundry 및 JDK

Sep 17 2020

런타임 중에 자바 코드를 컴파일해야하는 스프링 앱 배포에 어려움을 겪고 있습니다. 내 앱은 사용자가 문제에 대한 해결책을 제출할 때 javac 명령을 호출하므로 나중에 java를 실행할 수 있습니다.

저는 클라우드 파운드리에 배포하고 java-buildpack을 사용하고 있지만 불행히도 JDK와 함께 제공되지 않고 JRE 만 사용할 수 있으며 javac 또는 java 명령을 사용할 수 없습니다.

저만의 커스텀 빌드 팩을 작성하지 않고도 클라우드 파운드리에 JDK를 추가하는 방법을 알고 계십니까?

감사

답변

1 DanielMikusa Sep 18 2020 at 01:17

멀티 빌드 팩 지원을 사용하고 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하거나 경로를 업데이트하십시오.