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

springboot项目打包成docker镜像

1.上传jar包到服务器
在IDEA maven打包后生成的文件为:myspringboot_proj-1.0-SNAPSHOT.jar
然后将其上传到linux服务器,如下目录

[root@localhost tmp]# cd /tmp/myspringboot/
[root@localhost myspringboot]# ls -al
total 16
drwxr-xr-x   2 root root   48 Jul 29 10:19 .
drwxrwxrwt. 41 root root 4096 Jul 29 10:19 ..
-rw-r--r--   1 root root 8772 Jul 28 13:49 myspringboot_proj-1.0-SNAPSHOT.jar

 

2.编写Dockerfile编写

vi /tmp/myspringboot/DockerfileFROM java:21.0.4-9
COPY *.jar /app.jar
ENTRYPOINT ["java", "-jar", "/app.jar"]
####springboot项目配置的端口
EXPOSE 8888

 

3.构建

[root@localhost tmp]# cd /tmp/myspringboot/
[root@localhost idea]# docker build -t myspringboot .

 

4.查看构建的镜像

[root@localhost myspringboot]# docker images|grep myspringboot
myspringboot                                                 latest                         c2adf7eff01a   29 seconds ago   623MB

 

5.启动镜像并查看镜像

[root@localhost idea]# docker run -d -p 8888:8888 --name myspringboot myspringboot:latest
[root@localhost myspringboot]# docker ps|grep spring
6825bef40210   myspringboot:latest                                      "java -jar /app.jar"     42 seconds ago   Up 39 seconds           0.0.0.0:8888->8888/tcp, :::8888->8888/tcp                                                  myspringboot

 

查看日志,若报如下的错误

[root@localhost myspringboot]# docker logs myspringboot
no main manifest attribute, in /app.jar

 

解决办法:在pom.xml文件中添加如下项

  <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

 

然后重新打包,可以尝试将jar上传到服务器使用如下命令执行看是否正常
[root@localhost myspringboot]# java -jar myspringboot_proj-1.0-SNAPSHOT.jar

 

6.测试
http://192.168.1.134:8888/list

http://www.sczhlp.com/news/932.html

相关文章:

  • 克劳德代码与 Cursor 的问题:AI 编程的死亡螺旋
  • [题解]P5094 [USACO04OPEN] MooFest G 加强版
  • Win10专业版如何关闭Windows错误报告的问题
  • Win11正式版玩游戏输入法冲突的问题
  • Elasticsearch Circuit Breaker 全面解析与最佳实践 - 教程
  • ROS1(20.04 noetic) + PX4 + AirSim
  • 扩散模型-PPDM-95 - jack
  • 5.5 减少过程调用
  • spring springmvc springboot的区别
  • 13N90-ASEMI太阳能逆变器专用13N90
  • 基于Matlab的无人机地面固定目标稳定跟踪
  • 在Go语言微服务中实现服务监控
  • readv() writev()
  • Spring 中的 BeanFactory 和 ApplicationContext
  • Umi 约定式路由解析
  • SFUD库应用教程:串行SPI Flash驱动开发的最佳实践
  • 【刷题笔记】Peaks
  • spring security
  • required关键字和特性的区别
  • 详细介绍:理想不再“追星”华为。
  • C++小白修仙记_LeetCode刷题_1.两数之和
  • synchronized底层实现是什么 lock底层是什么 有什么区别
  • iOS 性能监控 苹果手机后台运行与能耗采样实战指南
  • pygame小游戏打飞机_1展示窗口
  • 个人版Navicat17 Lite版本安装教程(附安装包)2025最新版详细图文安装教程
  • Fluent许可状态监控工具
  • 链上充值监听与自动划转资金流程实现 - fox
  • 如何缓解Petya和WannaCrypt等快速网络攻击 | MSRC博客
  • 基于Amazon Translate的深度学习教材自动翻译系统
  • AI视频自动剪辑大师 v5.0 绿色版