方式一:
在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"