Spring Boot 앱이 있으면 다음을 사용하여 빌드하려고했습니다.
spring-boot-maven-plugin
골
mvn spring-boot:build-image
. 그러나 빌드는
bellsoft-jre11.0.9.1+1-linux-amd64.tar.gz
...에서
github.com
, 빌드 파이프 라인에서 액세스 할 수 없기 때문에 :
...
Paketo BellSoft Liberica Buildpack 5.2.1
https://github.com/paketo-buildpacks/bellsoft-liberica
Build Configuration:
$BP_JVM_VERSION 11.0.9 the Java version
Launch Configuration:
$BPL_JVM_HEAD_ROOM 0 the headroom in memory calculation
$BPL_JVM_LOADED_CLASS_COUNT 35% of classes the number of loaded classes in memory calculation
$BPL_JVM_THREAD_COUNT 250 the number of threads in memory calculation
$JAVA_TOOL_OPTIONS the JVM launch flags
BellSoft Liberica JDK 11.0.9: Contributing to layer
Downloading from https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
unable to invoke layer creator
unable to get dependency jdk
unable to download https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
unable to request https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
ERROR: failed to build: exit status 1
다운로드 할 수있는 방법이 있습니까?
bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
내 빌드 파이프 라인에 액세스 할 수있는 위치로 이동하고 대신 이것을 사용하도록 bellsoft-liberica 빌드 팩을 구성 하시겠습니까?
- 답변 # 1
관련 자료
- 다른 (최신 버전) sqlite 시스템 lib (sqlite 업그레이드)를 사용하도록 Python sqlite3 모듈 구성
- javascript - Truffle에서 다른 폴링 간격을 구성하는 방법은 무엇입니까?
- yaml - Azure의 서로 다른 두 에이전트에서 파이프 라인을 실행하도록 일정을 구성하는 방법은 무엇입니까?
- android - 다른 종속성 사이의 valuesxml에서 기본 빌드 오류 중복 키에 반응
- sql server - 다른 데이터베이스 엔진 간의 기본 쿼리 날짜 형식
- airflow - 동일한 DAG에서 작업에 대해 다른 '재시도'를 구성하는 방법이 있습니까?
문서에 따르면 :
현재로서는 spring-boot-maven-plugin (또는 Gradle 플러그인)을 사용하여 바인딩을 구성 할 수 없습니다. 따라서 우리는 CLI 팩으로 전환해야합니다.
===바인딩과 함께 Pack CLI를 사용하여 다른 JDK 다운로드 URI 구성===
팩 문서는 바인딩 디렉토리의 일반적인 레이아웃 (
/platform/bindings
나중에 팩 빌드 컨테이너 내부에 생성됨) :1. 바인딩 디렉토리 생성
이제 완전히 실행되는 예제를 만들어 봅시다! 바인딩 구성을
pack
필요한 CLI먼저 디렉토리 생성:2. 바인딩 키를 포함하는 파일 유형 생성
이제 다음과 같은 파일을 만들어야합니다.
type
bellsoft-liberica 바인딩 유형에 대한 바인딩 키를 포함하는이 디렉토리 내부dependency-mapping
:새 파일
type
문자열이 포함 된 디렉토리에 있어야합니다.dependency-mapping
.3. buildpack.toml에서 JDK 버전을 선택합니다.
bellsoft-liberica의 JDK 다운로드 uri를 변경하고 싶으므로우리가 사용할 JDK 버전을 결정해야합니다.bellsoft-liberica 빌드 팩의 buildpack.toml은 빌드 팩 내에서 사용 가능한 JRE/JDK 버전에 대한 개요를 제공합니다. 이 예에서는 최신 JDK 버전을 사용했습니다.
11
내부 구성buildpack.toml
이렇게 :4. JDK 다운로드
버전을 결정한 후내부에 제공된 위치에서 JDK를 다운로드해야합니다.
uri
나중에 빌드 환경 내에서 액세스 할 수있는 위치에 필드(우리는 github.com에 대한 액세스 권한이 없기 때문에). JDK를 다운로드하여 사용할 수 있다고 가정 해 보겠습니다.http://your-accessible-uri-to/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
.5. JDK uri를 포함하는 sha256이라는 이름의 파일을 만듭니다.
이제 우리는 또 다른에 따라 정확히 명명 된 파일
sha256
다이제스트 값의[[metadata.dependencies]]
buildpack.toml 내에서 선택한 JDK 버전 섹션. 이 파일에는 다운로드 한 JDK의 URI가 포함되어야합니다.결국 우리의 디렉토리
bellsoft-jdk-config
pack CLI 바인딩 디렉토리 문서를 준수해야하며 어떻게 든 다음과 같습니다.6. 바인딩을 위해 --volume 및 BP_JVM_VERSION을 사용하여 pack CLI를 실행합니다.
마지막으로 우리는
pack
CLI 명령. 팩 CLI가 시스템에 설치되어 있는지 확인하십시오. 또한 다음을 사용하여 정확한 JDK 버전 번호를 제공해야합니다.--env BP_JVM_VERSION=exactJDKversionNumberHere
다운로드 한 JDK 버전 및 buildpack.toml의 섹션과 일치하는 환경 변수 구성 :이제 bellsoft-liberica 빌드 팩은 다음에서 JDK tar.gz를 다운로드합니다.
http://your-accessible-uri-to/bellsoft-jdk11.0.9.1+1-linux-amd64.tar.gz
: