use jar not war SpringBoot项目不推荐你使用Tomcat部署

使用Dockerfile部署SpringBoot项目

随着微服的务兴起手动部署Tomcat的方式逐渐被淘汰,每一个服务只要有基础的web功能就足够了。假如有100个微服务,不可能手动部署100次Tomcat,使用jar包才是最方便。另外Tomcat经常存在一些安全漏洞,每次做安全测评都需要升级Tomcat才能解决,试想一下如果100个微服务都需要升级Tomcat漏洞(手动安装、手动配置)…因此SpringBoot内嵌了轻量级的tomcat,配合docker将应用程序依赖的JRE环境,jar包制作成一个镜像并运行起来可以很大程度节约服务器资源、部署成本。

1、准备一个可运行的jar包,用于测试如

[app@i-v6sas60k dockerfile]$ pwd
/home/app/soft/dockerfile
[app@i-v6sas60k dockerfile]$ ls
cache-0.0.1-SNAPSHOT.jar  Dockerfile  README.txt

2、编写Dockerfile文件,如

# cache service image

# FROM 设置基础镜像java8
FROM openjdk:8-jdk-alpine

MAINTAINER laizhenghua<3299447929@qq.com>

# 切换工作目录
WORKDIR /
# 执行创建目录
RUN mkdir -p /service
# 执行切换目录
RUN cd /service
# 传递参数声明(后面build 时 使用 --build-arg 传递) 即微服务打包的jar包名字
ARG JAR_FILE
# 将指定的JAR_FILE拷贝到 /service/app.jar
COPY ${JAR_FILE} /service/app.jar

CMD echo ${JAR_FILE}
# 指定暴露的端口
EXPOSE 8080
# 执行jar
CMD ["nohup", "java", "-jar", "/service/app.jar", "--server.port=8081", "&"]

3、通过文件构建镜像

[app@i-v6sas60k dockerfile]$ docker build -f Dockerfile --build-arg JAR_FILE=cache-0.0.1-SNAPSHOT.jar -t cache-service:0.1 .
Sending build context to Docker daemon  44.14MB
...

[app@i-v6sas60k dockerfile]$ docker images
REPOSITORY      TAG            IMAGE ID       CREATED         SIZE
cache-service   0.1            426921e13eb7   9 seconds ago   149MB
openjdk         8-jdk-alpine   a3562aa0b991   3 years ago     105MB
[app@i-v6sas60k dockerfile]$ 

4、测试运行

[app@i-v6sas60k dockerfile]$ docker run --name cache-servie -p 8081:8081 -d cache-service:0.1
0353e616200a19d2263408bab1f269ee892ad89d72cc14cec0ea75522ae2e6de

[app@i-v6sas60k dockerfile]$ docker logs 03

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.6.7)
 ...
 # 启动成功
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lambda.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值