推送 Spring 引导应用程序时隐式进程创建

Implicit Process creation when pushing a Spring boot application

我正在 Cloud Foundry 上推出一个极简的 Spring Boot Web 应用程序。我的清单看起来像

---
applications:
- name: training-app
  path: target/spring-boot-initial-0.0.1-SNAPSHOT.jar
  instances: 1
  memory: 1G
  buildpacks:
    - java_buildpack     
  env:
    TRAINING_KEY_3: from manifest


当我使用 Java Buildpack (https://github.com/cloudfoundry/java-buildpack/releases/tag/v4.45) 推送应用程序时,我看到它正在创建一个类型为 [=13= 的附加进程] 虽然没有任何 运行 实例。

name:                training-app
requested state:     started
isolation segment:   trial
routes:              ***************************
last uploaded:       Thu 20 Jan 21:29:31 IST 2022
stack:               cflinuxfs3
buildpacks:          
isolation segment:   trial
    name             version                                                                     detect output   buildpack name
    java_buildpack   v4.45-offline-https://github.com/cloudfoundry/java-buildpack.git#f1b695a0   java            java

type:            web
sidecars:        
instances:       1/1
memory usage:    1024M
start command:   JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1 -Djava.io.tmpdir=$TMPDIR -XX:ActiveProcessorCount=$(nproc)
                 -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS" &&
                 CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE -totMemory=$MEMORY_LIMIT -loadedClasses=13109 -poolType=metaspace -stackThreads=250 -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration:
                 $CALCULATED_MEMORY && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher
     state     since                  cpu    memory        disk         details
#0   running   2022-01-20T15:59:55Z   0.0%   62.2M of 1G   130M of 1G   

type:            task
sidecars:        
instances:       0/0
memory usage:    1024M
start command:   JAVA_OPTS="-agentpath:$PWD/.java-buildpack/open_jdk_jre/bin/jvmkill-1.16.0_RELEASE=printHeapHistogram=1 -Djava.io.tmpdir=$TMPDIR -XX:ActiveProcessorCount=$(nproc)
                 -Djava.ext.dirs=$PWD/.java-buildpack/container_security_provider:$PWD/.java-buildpack/open_jdk_jre/lib/ext -Djava.security.properties=$PWD/.java-buildpack/java_security/java.security $JAVA_OPTS" &&
                 CALCULATED_MEMORY=$($PWD/.java-buildpack/open_jdk_jre/bin/java-buildpack-memory-calculator-3.13.0_RELEASE -totMemory=$MEMORY_LIMIT -loadedClasses=13109 -poolType=metaspace -stackThreads=250 -vmOptions="$JAVA_OPTS") && echo JVM Memory Configuration:
                 $CALCULATED_MEMORY && JAVA_OPTS="$JAVA_OPTS $CALCULATED_MEMORY" && MALLOC_ARENA_MAX=2 SERVER_PORT=$PORT eval exec $PWD/.java-buildpack/open_jdk_jre/bin/java $JAVA_OPTS -cp $PWD/. org.springframework.boot.loader.JarLauncher
There are no running instances of this process.

我知道是Springboot Web application,对应的是web类型的进程,但是我不知道

如果有人能在这里帮助我就太好了。

问候 上午

Who is creating the process of type task

The buildpack creates both。这是一段时间以来一直在发生的事情,但最近 cf cli 的更改使它更加明显。

What is the purpose of this process ?

我没有将它添加到 buildpack 中,所以我不能 100% 说明它的用途,但我相信它应该与 运行ning Java 应用程序一起使用CF 上的任务。

参见this commit

当您 运行 一个任务时,cf run-task 命令有一个 --process 标志,可用于设置一个进程以用作命令模板。我相信这个想法是您将其设置为 task 以便它可以使用该命令来 运行 您的请求。参见 here for reference to that flag