当前位置: 首页 > 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.lryc.cn/news/595626.html

相关文章:

  • 【电影剖析】千钧一发
  • 【openbmc6】entity-manager
  • ROS 与 Ubuntu 版本的对应关系
  • 如何使用电脑连接小米耳机(红米 redmi耳机)
  • 微信二维码扫描登录流程详解
  • redis 如何优雅地进行键设计?
  • Linux学习之Linux系统权限
  • 【论文阅读】Nonparametric clustering of RNA-sequencing data
  • Java IO 流详解:从基础到实战,彻底掌握输入输出编程
  • Linux C 多线程基本操作
  • 基于springboot+vue开发的图书馆座位预约系统【源码+sql+可运行】【50721
  • Djoser 详解
  • 奥比中光深度相机开发
  • Pytorch版本、安装和检验
  • RS485和Modbus
  • 完整的 SquareStudio 注册登录功能实现方案:已经烧录到开发板正常使用
  • 感知机-梯度下降法
  • OpenCV中特征匹配算法GMS(Grid-based Motion Statistics)原理介绍和使用代码示例
  • 使用相机不同曝光时间测试灯光闪烁频率及Ai解释
  • Trae开发uni-app+Vue3+TS项目飘红踩坑
  • hot100回归复习(算法总结1-38)
  • GoLang教程005:switch分支
  • 零拷贝技术(Zero-Copy)
  • 【C语言进阶】结构体练习:通讯录
  • 暑期算法训练.5
  • stm32内存分析
  • OpenAI Codex CLI与 Google Gemini CLI 比较
  • 深度解析 HTML `loading` 属性:优化网页性能的秘密武器
  • 基于LangChain构建企业级AI智能体:从架构设计到行业落地实战
  • 深度学习 ---神经网络以及数据准备