学习提高:Idea 使用docker 部署SpringBoot应用并指定JVM参数,jdk8版本

最近项目中需要使用docker进行开发和部署SpringBoot应用,因此进行相关研究。
当使用Docker部署Spring Boot应用时,以下是更详细的步骤:

步骤1:创建Dockerfile

在Spring Boot应用的根目录创建一个名为Dockerfile的文件,并使用文本编辑器打开它。然后,按照下面的例子编写Dockerfile:

# 使用官方的OpenJDK 11基础镜像
FROM openjdk:11-jre-slim

# 设置工作目录
WORKDIR /app

# 复制Spring Boot应用的JAR文件到容器中
COPY target/your-spring-boot-app.jar app.jar

# 暴露应用运行的端口
EXPOSE 8080

# 指定应用启动的命令
ENTRYPOINT ["java", "-jar", "app.jar"]

请将your-spring-boot-app.jar替换为实际的应用文件名。

步骤2:构建Docker镜像

在Spring Boot应用的根目录打开终端(命令行),运行以下命令构建Docker镜像:

docker build -t your-spring-boot-app .

这将构建一个名为your-spring-boot-app的Docker镜像。

步骤3:运行Docker容器

构建完成后,可以运行Docker容器。运行以下命令:

docker run -p 8080:8080 -d your-spring-boot-app

这将在后台运行一个容器,并将本地机器的8080端口映射到容器的8080端口。

步骤4:验证应用是否运行

打开浏览器,访问 http://localhost:8080,应该能够看到Spring Boot应用的欢迎页面。

这些步骤基本上覆盖了将Spring Boot应用打包到Docker容器中并运行的过程。确保在构建Docker镜像之前,使用./mvnw clean install./gradlew clean build等命令先构建Spring Boot应用。

下面是实际操作步骤

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占用、内存占用过高过高定位和排查


  • 如果对你有用,请给个在看,谢谢~~欢迎各位留言交流,
  • 如有不正确的地方,请予以指正。【W:编程心声】
  • 如有任何问题,关注公众号编程心声后,留言即可。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_夜半钟声到客船

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值