Spring Webflux 최적화 된 OCI 이미지를 생성하는 빌드 팩이 있습니까?

신참

Spring Webflux 애플리케이션에 자체적으로 적합한 빌드 팩 빌더를 찾을 수 없습니다. 예를 들어, Paketo는 사용자 정의를위한 공간이 거의 없으며 기본적으로 일반적인 Webflux 앱 (예 : apache-tomcat)에 필요하지 않은 빌드 팩이 포함되어 있습니다. webflux / jvm-reactive 애플리케이션에 맞는 빌드 팩이 있습니까?

다니엘 미쿠 사

Spring Webflux에 대해 여기서 특정 작업을 수행 할 필요가없는 것처럼 보이며 Java 관련 CNB가 올바른 작업을 수행합니다.

Spring Initializer (Webflux 스타터 추가)로 만든 샘플 앱을 가져 와서 실행 pack build했습니다 (를 실행 ./mvnw spring-boot:build-image하면 매우 유사한 출력이 표시됩니다).

그 결과 다음과 같은 결과가 나왔습니다.

===> DETECTING
[detector] 6 of 17 buildpacks participating
[detector] paketo-buildpacks/bellsoft-liberica 3.2.0
[detector] paketo-buildpacks/maven             3.1.0
[detector] paketo-buildpacks/executable-jar    3.1.0
[detector] paketo-buildpacks/apache-tomcat     2.2.0
[detector] paketo-buildpacks/dist-zip          2.2.0
[detector] paketo-buildpacks/spring-boot       3.2.0

언뜻보기에는 이상하게 보일 수 있습니다. 왜 Tomcat이 있습니까? Tomcat CNB를 보면 예상됩니다. Tomcat CNB는 항상 성공적인 감지반환합니다 .

pass사실로 하드 코딩 된 방법 유의하십시오 .

result := libcnb.DetectResult{
    Pass: true,
    Plans: []libcnb.BuildPlan{
        {
            Requires: []libcnb.BuildPlanRequire{
                {Name: "jre", Metadata: map[string]interface{}{"launch": true}},
                {Name: "jvm-application"},
            },
        },
    },
}

이것이 괜찮은 이유는 빌드시 디렉토리 가 없으면WEB-INF Tomcat CNB가 즉시 종료 (no-op) 되고 Spring WebFlux 앱의 경우에는 존재하지 않기 때문입니다.

file := filepath.Join(context.Application.Path, "WEB-INF")
if _, err := os.Stat(file); err != nil && !os.IsNotExist(err) {
    return libcnb.BuildResult{}, fmt.Errorf("unable to stat file %s\n%w", file, err)
} else if os.IsNotExist(err) {
    return libcnb.BuildResult{}, nil
}

의 전체 출력을 pack build보고 존재 여부를 확인하여이를 확인할 수 있습니다 Paketo Apache Tomcat Buildpack x.x.x(여기서 xxx는 버전 번호). Tomcat CNB가 실행 중이고 작업을 수행하는 경우 해당 라인 output이 표시 됩니다.

paketo-buildpack / dist-zip CNB는 동일한 방식으로 작동하며 단지 <APPLICATION_ROOT>/*/bin/*존재를 찾고 있습니다.

요약하면 생성되는 이미지는 애플리케이션에 고유해야하며 불필요한 내용을 포함해서는 안됩니다. Spring WebFlux를 실행중인 경우 이미지에 Tomcat이 설치되어 있지 않아야합니다. 또한 Cloud Native 빌드 팩을 사용하여 제공되는 모든 최적화를 얻을 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Spring Boot 2.3.0 빌드 팩은 40 년 전 생성 날짜로 이미지를 빌드합니다.

분류에서Dev

실시간으로 생성 된 이미지를 어떻게 최적화 할 수 있습니까?

분류에서Dev

중복 및 누락 된 값을 확인하는이 코드를 어떻게 최적화 할 수 있습니까?

분류에서Dev

객체를 const로 표시하면 더 나은 최적화 된 코드가 생성되는 경우가 있습니까 (최적화로 컴파일 할 때)?

분류에서Dev

Pixellena Light API가 최적화 된 이미지를 반환하지 않습니다.

분류에서Dev

이미지를 빌드하는 데 사용 된 Docker 버전을 찾는 방법이 있습니까?

분류에서Dev

Spring Framework를 사용하여 모듈 식 구성 요소 화 된 웹 애플리케이션을 빌드 할 수 있습니까?

분류에서Dev

SMR 하드 드라이브를 최적화하는 방법이 있습니까?

분류에서Dev

LLVM을 사용하여 최적화 된 C 코드를 생성 할 수 있습니까?

분류에서Dev

PHP에서이 mysql 코드를 최적화하는 방법이 있습니까?

분류에서Dev

이 R 코드를 최적화 할 수있는 방법이 있습니까?

분류에서Dev

이미 압축 된 이미지는 어떻게 최적화합니까?

분류에서Dev

빌드 아티팩트에서 "pull 요청 트리거"가 비활성화 된 경우 PR (빌드 유효성 검사 정책)로 인해 빌드가 릴리스를 트리거하는 이유는 무엇입니까?

분류에서Dev

파생 된 테이블이있는보기를 최적화하는 방법

분류에서Dev

정적으로 생성 된 컨트롤이있는 viewstate를로드하지 못했습니다.

분류에서Dev

이 쿼리를 최적화하는 방법이 있습니까?

분류에서Dev

앱 전송 보안 설정이 활성화 된 경우 sdwebimage가 이미지를 성공적으로로드 할 수있는 이유는 무엇입니까?

분류에서Dev

Docker 이미지 빌드 중에 생성 된 디렉토리를 마운트하는 방법은 무엇입니까?

분류에서Dev

이 코드를 어떻게 최적화 할 수 있습니까?

분류에서Dev

TFS 빌드에서 Intellitrace 파일을 생성하는 방법이 있습니까?

분류에서Dev

스프링이 아닌 웹 애플리케이션이 spring + hibernate를 사용하여 빌드 된 jar를 사용할 수 있습니까?

분류에서Dev

빌드 아티팩트를 기본적으로 "드롭"이라고하는 이유는 무엇입니까?

분류에서Dev

트랜스 파일이 필드를 최적화하지 않습니까?

분류에서Dev

이미지 디코딩을 위해 Delphi 코드를 최적화하는 방법은 무엇입니까?

분류에서Dev

Android에서 큰 목록을 렌더링하는 최적화 된 방법이 있습니까?

분류에서Dev

최종 빌드에 태그가 지정된 중간 이미지를 사용하는 방법은 무엇입니까?

분류에서Dev

Docker 1.7.1 : 이미지를 빌드하는 동안 Dockerfile에 동적 정보를 제공하는 방법이 있습니까?

분류에서Dev

OpenApi / Swagger 사양 (코드 생성) 파일이있는 Spring WebFlux를 찾을 수 없음

분류에서Dev

Docker 빌드는 이름없는 이미지를 많이 생성합니다.

Related 관련 기사

  1. 1

    Spring Boot 2.3.0 빌드 팩은 40 년 전 생성 날짜로 이미지를 빌드합니다.

  2. 2

    실시간으로 생성 된 이미지를 어떻게 최적화 할 수 있습니까?

  3. 3

    중복 및 누락 된 값을 확인하는이 코드를 어떻게 최적화 할 수 있습니까?

  4. 4

    객체를 const로 표시하면 더 나은 최적화 된 코드가 생성되는 경우가 있습니까 (최적화로 컴파일 할 때)?

  5. 5

    Pixellena Light API가 최적화 된 이미지를 반환하지 않습니다.

  6. 6

    이미지를 빌드하는 데 사용 된 Docker 버전을 찾는 방법이 있습니까?

  7. 7

    Spring Framework를 사용하여 모듈 식 구성 요소 화 된 웹 애플리케이션을 빌드 할 수 있습니까?

  8. 8

    SMR 하드 드라이브를 최적화하는 방법이 있습니까?

  9. 9

    LLVM을 사용하여 최적화 된 C 코드를 생성 할 수 있습니까?

  10. 10

    PHP에서이 mysql 코드를 최적화하는 방법이 있습니까?

  11. 11

    이 R 코드를 최적화 할 수있는 방법이 있습니까?

  12. 12

    이미 압축 된 이미지는 어떻게 최적화합니까?

  13. 13

    빌드 아티팩트에서 "pull 요청 트리거"가 비활성화 된 경우 PR (빌드 유효성 검사 정책)로 인해 빌드가 릴리스를 트리거하는 이유는 무엇입니까?

  14. 14

    파생 된 테이블이있는보기를 최적화하는 방법

  15. 15

    정적으로 생성 된 컨트롤이있는 viewstate를로드하지 못했습니다.

  16. 16

    이 쿼리를 최적화하는 방법이 있습니까?

  17. 17

    앱 전송 보안 설정이 활성화 된 경우 sdwebimage가 이미지를 성공적으로로드 할 수있는 이유는 무엇입니까?

  18. 18

    Docker 이미지 빌드 중에 생성 된 디렉토리를 마운트하는 방법은 무엇입니까?

  19. 19

    이 코드를 어떻게 최적화 할 수 있습니까?

  20. 20

    TFS 빌드에서 Intellitrace 파일을 생성하는 방법이 있습니까?

  21. 21

    스프링이 아닌 웹 애플리케이션이 spring + hibernate를 사용하여 빌드 된 jar를 사용할 수 있습니까?

  22. 22

    빌드 아티팩트를 기본적으로 "드롭"이라고하는 이유는 무엇입니까?

  23. 23

    트랜스 파일이 필드를 최적화하지 않습니까?

  24. 24

    이미지 디코딩을 위해 Delphi 코드를 최적화하는 방법은 무엇입니까?

  25. 25

    Android에서 큰 목록을 렌더링하는 최적화 된 방법이 있습니까?

  26. 26

    최종 빌드에 태그가 지정된 중간 이미지를 사용하는 방법은 무엇입니까?

  27. 27

    Docker 1.7.1 : 이미지를 빌드하는 동안 Dockerfile에 동적 정보를 제공하는 방법이 있습니까?

  28. 28

    OpenApi / Swagger 사양 (코드 생성) 파일이있는 Spring WebFlux를 찾을 수 없음

  29. 29

    Docker 빌드는 이름없는 이미지를 많이 생성합니다.

뜨겁다태그

보관