在安装了 jdk 而不是 jre 的 google kubernetes 引擎上部署 spring-boot 应用程序

Deploying spring-boot application on google kubernetes engine with jdk installed instead of jre

我需要在 google Kubernetes 上部署 spring 引导应用程序。该应用程序依赖于 Optaplanner,它需要在运行时将一些 Java 类 编译成字节码,因此需要 JDK。

如何在 JDK 提供的 Kubernetes 引擎而不是 JRE 上进行部署?

您可以使用 JDK 创建 Docker 文件和 docker 图像,以便您的应用程序可以使用 docker 中的 JDK。

对于spring引导示例你可以查看:https://github.com/spring-guides/gs-spring-boot-docker

package hello;
                        
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class Application {
    
    @RequestMapping("/")
    public String home() {
        return "<h1>Spring Boot Hello World!</h1>";
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

示例docker文件

FROM openjdk:8-jdk
RUN addgroup --system spring && adduser --system spring -ingroup spring
USER spring:spring
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

你可以参考这个官方的Oracle例子:https://docs.oracle.com/en-us/iaas/developer-tutorials/tutorials/spring-on-k8s/01oci-spring-k8s-summary.htm