当前位置: 首页 > news >正文

如何把jar包打成docker镜像(SpringBoot项目打包成Docker )部署到Linux

一、先有一个jar包

1.1SpringBoot快速构建

这个想必大家都会,自己去创建一个即可。需要注意的是,pom.xml记得配置build

    <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><mainClass>com.kiki.app.SingletonServerApplication</mainClass></configuration><executions><execution><goals><!--创建一个自动可执行的jar或war文件 --><goal>repackage</goal></goals></execution></executions></plugin></plugins></build>

而后如果你使用右侧maven可视化构建,记得跳过test哦
在这里插入图片描述
如果使用命令打包

#  -DskipTests 跳过测试 
# -Dspring.profiles.active=test  指定配置文件
mvn clean install -DskipTests -Dspring.profiles.active=test

然后你就会得到一个jar包。

1.2准备一台Linux 服务器

将jar包上传到指定文件下(文件夹自己建即可),然后创建文件 Dockerfile
在这里插入图片描述

1.3编辑Dockerfile

vim Dockerfile

# 指定jdk
FROM openjdk:8# 打标签
LABEL author=kiki
# 将你的jar  与Dockerfile同级的singleton-app-1.0.jar 复制给新系统的根目录下,也就是镜像里
COPY singleton-app-1.0.jar /singleton-app.jar
# 暴露端口9999
EXPOSE 9999
# 执行命令 java -jar /singleton-app.jar
# 会按下面的命令启动
ENTRYPOINT ["java","-jar","/singleton-app.jar"]

编辑好你的Dockerfile
需要在jar包目录所在地执行如下命令,将jar打成Docker镜像

# -f 使用一个文件构建镜像
# Dockerfile 文件就是Dockerfile
# -t 全称是 --tag 指要制作的镜像 名叫什么
# . 代表的是./ 代表构建的上下文目录就是当前目录docker build -f Dockerfile -t myjavaapp:v1.0 .

执行上述命令后,会进入构建环节,首先会去下基础的jdk,下载好后,再去构建其他信息
在这里插入图片描述
可以看到构建成功了。
docker查看下是否生成了镜像
在这里插入图片描述
可以看到 成功了也是
然后执行运行就好啦!

# 运行容器
# -d 后台运行
# -p 服务器端口映射容器内端口docker run -d -p 9999:9999 myjavaapp:v1.0
http://www.xdnf.cn/news/1170649.html

相关文章:

  • 本地代理和服务器代理区别
  • 【MyBatisPlus】一文讲清 MyBatisPlus 基本原理及基本使用方式
  • NumPy库使用教学,简单详细。
  • allegro 16.6配置CIS库报错 ORCIS-6129 ORCIS-6469
  • Matplotlib绘制各种图参考
  • 时序数据库IoTDB好不好?
  • 在 Linux 系统中基于 Nginx 搭建 openlab 网站及子页面
  • 浅谈——C++和C#差异
  • 从 COLMAP 到 3D Gaussian Splatting
  • 【面试】Redis分布式ID与锁的底层博弈:高并发下的陷阱与破局之道
  • 机器人氩弧焊保护气降成本的方法
  • kafka主题管理详解 - kafka-topics.sh
  • 苹果app应用ipa文件程序开发后如何运行到苹果iOS真机上测试?
  • IntelliJ IDEA (2024.3.1)优雅导入 Maven 项目的两种方式详解
  • 【小学】小学学习资料合集(不定时更新,有需要及时保存,避免失效)
  • LNMP平台部署
  • 设计模式——责任链模式
  • 欧式装修颜色要怎么搭配?
  • Linux研学-MySQL安装
  • C# 类 封装 属性 练习题
  • 暑假算法训练.6
  • [LLM]Synthetic Visual Genome
  • pluto example, heat-1d优化分析
  • ClearML库详解:从实验跟踪到模型部署的全流程管理
  • KafkaMQ 日志采集最佳实践
  • Hadoop调度器深度解析:FairScheduler与CapacityScheduler的优化策略
  • Navicat 远程连接SQLlite数据库
  • 【锁】MySQL中有哪几种锁?
  • 标记语言---XML
  • 《Webpack热更新瓶颈突破:全链路优化指南》