当前位置: 首页 > 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.dtcms.com/a/292844.html

相关文章:

  • CMOS知识点 离子注入工艺
  • OpenCV Mat UMat GpuMat Matx HostMem InputArray等设计哲学
  • Arduino学习笔记【快速入门】
  • 蓝牙通信架构(Bluetooth/BLE)
  • Windows系统暂停更新工具
  • 每日面试题12:JVM垃圾回收机制
  • 分布式数据库中间件ShardingSphere
  • Unity UI的未来之路:从UGUI到UI Toolkit的架构演进与特性剖析(1)
  • Java学习-----Bean
  • Datawhale AI 夏令营-心理健康Agent开发学习-Task1
  • 猎板 PCB:多场景适配下印制线路板的材料选择优化策略
  • 朴素贝叶斯算法原理与案例解析
  • linux: tar解压之后属主和属组不是当前用户问题
  • 2025人形机器人动捕技术研讨会即将于7月31日盛大开启
  • 阿里巴巴视觉算法面试30问全景精解
  • 知识库搭建之Meilisearch‘s 搜索引擎-创建搜索引擎项目 测评-东方仙盟测评师
  • 数据降噪/生物信号强化/缓解 dropout,深度学习模型 SUICA 实现空间转录组切片中任一位置基因表达的预测
  • [LLM]Synthetic Visual Genome
  • GNU到底是什么,与Unix和Linux是什么关系
  • 链表经典算法题
  • web复习
  • 网络原理 HTTP 和 HTTPS
  • kafka查看消息的具体内容 kafka-dump-log.sh
  • Python笔记完整版
  • 扇形区域拉普拉斯方程傅里叶解法2
  • 一款功能全面的文体场所预约小程序
  • Grails(Groovy)框架抛出NoHandlerFoundException而不是返回404 Not Found
  • 【多线程篇21】:深入浅出理解Java死锁
  • 《Uniapp-Vue 3-TS 实战开发》自定义预约时间段组件
  • 7.22总结mstp,vrrp