Docker限制SpringBoot的内存等配置

在最近的线上运行中,运维反馈部分客户机器上资源不够,且需要根据不同的客户要求调整不同的docker资源,故而整理以下设置:

方式一:

在Dockerfile中设置:

ENTRYPOINT exec java -Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:-OmitStackTraceInFastThrow  -Djava.security.egd=file:/dev/./urandom  -Dspring.profiles.active=pro -jar /app.jar

  优点:开发人员直接固定为相对于较优或最大支持的参数,其他运维人员不易随便更改其参数设置

  缺点: 运维不能根据实际情况进行参数跳转

方法二:

 通过参数引用,在启动Docker时传入JAVA_OPTS的参数,方便运维人员根据实际情况设置,且当运行时不指定该参数时容器一样能正常运行。

Dockerfile:
ENTRYPOINT exec java $JAVA_OPTS  -Djava.security.egd=file:/dev/./urandom -jar /app.jar
docker-compose:
## 参数设置: 
environment:
    JAVA_OPTS: "-Xms512m -Xmx1024m -Xss1024K"

如当前服务需要远程debug时可以先在dockerfile文件中预置:JAVA_DEBUG_OPTS,在需要的调试模式时,在docker-compose中配置:

JAVA_DEBUG_OPTS: "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=53998"

即可开始调试

你可能感兴趣的:(运维,Docker,Spring)