spring - 运行 mvn spring-boot :build-image command in Spring Boot 2. 3.0 时如何设置 JVM 参数以生成 docker 镜像?

标签 spring spring-boot docker jvm

我正在尝试使用最新版本的 Spring Boot (2.3.0) 构建一个 docker 镜像。我现在需要创建一个镜像,只需运行命令 mvn:spring-boot:build-image 。这将为我创建一个 docker 镜像。在这种情况下,如何设置 JVM 参数(最大、最小堆大小)?

最佳答案

截至今天,您无法在 spring-boot:build-image 中设置 JVM 参数。

Spring Boot 构建镜像在内部使用 Packeto,它接受以下 4 个环境变量,如 bellsoft-liberica 中所述。 GitHub。

"BP_JVM_VERSION" : "13.0.1",  
"BPL_JVM_HEAD_ROOM" : "10",
"BPL_JVM_LOADED_CLASS_COUNT" : "35", 
"BPL_JVM_THREAD_COUNT" : "10"

作为替代选项,您可以在运行镜像时传递 JVM 参数。
docker run -p 8080:8080 --env JAVA_OPTS="-Xmx300m -Xms200m" -t youImageName
如果使用 Kubernetes,您可以在 deployment level 配置 JVM 选项.
    spec:
      containers:
      - name: yourapp
        image: image path
        ports:
        - containerPort: 8080
        env:
        - name: SPRING_PROFILES_ACTIVE
          value: "prod"    
        - name: BPL_JVM_HEAD_ROOM
          value: "2"  
        - name: BPL_JVM_LOADED_CLASS_COUNT
          value: "35"  
        - name: BPL_JVM_THREAD_COUNT
          value: "10"  
        - name: JAVA_OPTS
          value: >-
                -XX:ReservedCodeCacheSize=40M
                -XX:MaxMetaspaceSize=60M
                -Xlog:gc
                -Xms34m
                -Xmx40m
                -Xss256k
                -XX:MaxRAM=150M


Spring boot 存储库中有一个 GitHub 问题正在讨论此问题 Failed to change JVM arguments for buildpacked image

关于spring - 运行 mvn spring-boot :build-image command in Spring Boot 2. 3.0 时如何设置 JVM 参数以生成 docker 镜像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61855229/

相关文章:

spring - PagingAndSortingRepository 无法解析

spring - java - 如何为spring批处理数据和业务数据配置单独的数据源?我应该这样做吗?

docker - 如何通过docker-compose网络将前端连接到后端

node.js - 如何解决/bin/sh : node-pre-gyp: not found? 与 docker 相关的问题

java - 如何确保客户端崩溃时 JMS 消息重新传递

java - Hibernate Session 空指针异常

spring - 在 Spring 中在运行时动态声明 bean

java - GET 始终返回 0 id 值。 Spring数据JPA

java - Spring @Entity 类中的注释顺序

MySql - 错误代码 : 1932. 引擎中不存在表