学习提高:Idea 使用docker 部署SpringBoot应用并指定JVM参数,jdk8版本
最近项目中需要使用docker进行开发和部署SpringBoot应用,因此进行相关研究。
1、新建SpringBoot项目
2、新建Dockerfile文件
内容如下:
#这是基础镜像
FROM java:8
# 维护者信息
MAINTAINER demo
VOLUME /tmp
#复制jar包到镜像中,并且将名字改成app.jar
ADD ./target/demo-docker-springboot-1.0.0-SNAPSHOT.jar app.jar
#通过文件链接的方式修改 时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#在容器启动的时候运行命令,来启动我们的项目
RUN bash -c 'touch /app.jar'
#暴露8080端口
EXPOSE 8080
# JVM启动参数设置,配置gc日志,发生oom时候heapdump文件路径
ENV JAVA_OPTS="\
-server \
-XX:+PrintFlagsFinal \
-Xloggc:demo-docker-springboot-gc-%t.log \
-Xmn512M \
-Xms1024M \
-Xmx1024M \
-XX:+PrintGCDetails \
-XX:+PrintTenuringDistribution \
-XX:+PrintGCTimeStamps \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/errorlog/demo-docker-springboot-heapdump.hprof \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=5 \
-XX:GCLogFileSize=20M"
ENTRYPOINT java ${JAVA_OPTS} -jar app.jar
3、Run on Docker
这一步先配置idea连接Docker。
生产稳定:JVM-MySQL-Tomcat-服务调用,调优相关
生产稳定:JVM调优- java进程,JVM频繁GC,导致CPU占用、内存占用过高过高定位和排查
-------------如果对你有用,请给个赞,谢谢~~
-------------欢迎各位留言交流,如有不正确的地方,请予以指正。【Q:981233589】