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

docker部署springboot jar包项目

docker部署springboot jar包项目

  • 前提,服务器环境是docker环境,如果服务器没有安装docker,可以先安装docker环境。
    各个环境安装docker:
    Ubuntu上安装Docker:
    ubuntu离线安装docker:
    CentOS7离线安装Docker:
    CentOs7在线安装docker:
    docker安装成功后,执行docker ps命令

一、编译springboot项目生成jar包

  • 将项目jar包上传到服务器安装目录
  • 如果使用idea开发工具,直接点击右侧Maven,clean,install生成jar包
    在这里插入图片描述
  • install编译完成后会在target下生成一个jar包
    在这里插入图片描述
  • 将这个jar包上传到服务器的安装目录

二、创建安装目录

  • /opt/projects/demo-java/target/
cd /opt
mkdir projects
cd projects
# 创建项目目录和日志目录
mkdir demo-java log
cd demo-java
mkdir target
cd /opt/projects/log
mkdir java
  • 将jar包上传到/opt/projects/demo-java/target/目录下
    在这里插入图片描述
  • 项目中配置的日志目录是/opt/project/log,构建成容器后日志目录也是这个
  • 日志配置文件logback-spring.xml
    在这里插入图片描述

三、创建Dockerfile

# 基于哪个镜像
FROM openjdk:8-jdk
# 将本地文件夹挂载到当前容器
VOLUME /tmp
# 拷贝文件到容器,ocr-compare-demo-java.jar这里是maven打包后的名字
# target,必须与服务器上创建的目录保持一致
ADD target/ocr-compare-demo-java.jar app.jar
#时区设置
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS="-server  -Xmx512m -Xms128m -Xmn256m -XX:MetaspaceSize=64m"
# 配置容器启动后执行的命令
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
  • 将Dockerfile放在/opt/projects/demo-java目录下,与target同级
    在这里插入图片描述
  • FROM openjdk:8-jdk # 基于openjdk这个镜像来构建,服务器如果没有这个镜像,默认会先拉去这个镜像
  • 查看镜像docker images
    在这里插入图片描述

四、创建启动文件

  • build-demo-java.sh
#!/bin/bashecho "-----clear container and image start-----"
# 命名容器名称
rep=demo-java
# 如果此容器存在则停止
if docker ps | grep "$rep";thendocker stop $rep
fi
# 如果此容器存在则删除
if docker ps -a | grep "$rep";thendocker rm $rep
fi
# 如果此镜像存在则删除
if docker images | grep "$rep";thendocker rmi $rep
fi
echo "----clear container and image end----"
# 构建镜像
echo "------build docker image start------"
docker build -t $rep /opt/projects/demo-java || ! echo "build new image error" || exit
echo "------build docker image end-------"echo "----build container start-----"
# 启动容器
docker run -d -p 7070:7070 \
-v /opt/projects/log/java:/opt/project/log \
--restart=always --privileged=true \
-e TZ=Asia/Shanghai \
--name $rep $rep || ! echo "cannot run container:$rep,exit" || exit
echo "-----build container end-----"# -p 7070:7070 [宿主机映射端口]:[容器端口-jar包项目中配置的端口]
# -v /opt/projects/log/java:/opt/project/log  -v配置容器目录映射到宿主机,[宿主机目录]:[容器目录]
# -e TZ=Asia/Shanghai 给容器设置时区
# --name $rep $rep  容器名称、镜像名称,镜像名称不带版本号时默认latest版本

五、执行启动文件

cd  /opt/projects/
sh sh build-demo-java.sh 

在这里插入图片描述
在这里插入图片描述

  • 查看镜像docker images
    在这里插入图片描述

六、查看部署的容器

# 查看容器
docker ps
# 查看看那日志
docker logs -f --tail 500 demo-java

在这里插入图片描述

  • 查看日志 docker logs -f --tail 500 demo-java
    在这里插入图片描述
  • 启动成功

相关文章:

docker部署springboot jar包项目

docker部署springboot jar包项目 前提,服务器环境是docker环境,如果服务器没有安装docker,可以先安装docker环境。 各个环境安装docker: Ubuntu上安装Docker: ubuntu离线安装docker: CentOS7离线安装Docker&#xff1…...

一个八年工作经验老程序员的分享

作为一个 Java 程序员,我在这个行业中工作了多年。在这个过程中,我经历了许多挑战和机遇,也学到了很多宝贵的经验和教训。在这篇文章中,我想分享一些我的感想和思考,希望能够对其他 Java 程序员有所帮助。 一、技术的…...

代码随想录算法训练营第四十三天|动态规划|1049. 最后一块石头的重量 II、494. 目标和、474.一和零

1049. 最后一块石头的重量 II 文章 有一堆石头&#xff0c;每块石头的重量都是正整数。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x < y。那么粉碎的可能结果如下&#xff1a; 如果 x y&a…...

vue3+elementPlus:el-table-column表格列动态设置单元格颜色

:cell-style属性 //html<el-tableempty-text"暂无数据":data"datalist.table":max-height"height"row-key"id"border:cell-style"cellStyle"> <el-table>//js //动态设置单元格颜色 const cellStyle ({ row, c…...

python和shell脚本,每隔五分钟将远端服务器中的文件夹数据下载到跳板机

python脚本 import subprocess import datetime import timedef run_scp_command(source_path, target_path):command [scp -r , source_path, target_path]try:subprocess.run(command, checkTrue)print("File transferred successfully!")except subprocess.Call…...

Websocket在Asp.net webApi(.net framework)上的应用

之前在写看板部分的web api的时候&#xff0c;都是通过Ajax在规定时间内轮询调用web api&#xff0c;这样简单省事&#xff0c;但是当看板多了&#xff08;并发量上来&#xff09;以后&#xff0c;比较消耗服务器的性能&#xff0c;所以最近研究了websocket&#xff0c;希望使用…...

App前端开发跨平台框架比较:React Native、Flutter、Xamarin等

引言 移动应用开发领域的跨平台框架正在不断演进&#xff0c;为开发者提供更多选择。在本文中&#xff0c;我们将比较几个流行的跨平台框架&#xff1a;React Native、Flutter和Xamarin等。讨论它们的优缺点、适用场景以及开发体验。 第一部分 React Native: 优缺点、适用场景…...

VR数字展厅在企业中应用的优势有哪些?

随着VR全景技术的成熟&#xff0c;VR数字展厅逐渐成为了企业展示形象和产品的重要手段之一。VR企业数字展厅是一种通过VR技术、3D建模技术展示企业形象和产品的创新方式&#xff0c;将企业线下的展厅搬到线上&#xff0c;为企业品牌形象带来了很多优势。 VR数字展厅在企业中应用…...

【数据库】索引 视图 触发器 分页查询

目录 1、索引 2、视图 3、触发器 4、分页查询⚠️ 1、索引 提升查询效率、当数据量小的时候&#xff0c;索引看不出来效果&#xff0c;当数据量很大的时候&#xff0c;索引会显著提高查询速度 当给表添加索引之后&#xff0c;新插入一条数据&#xff0c;就会让索引进行重新…...

*地宫取宝c++

题目 输入样例1&#xff1a; 2 2 2 1 2 2 1输出样例1&#xff1a; 2输入样例2&#xff1a; 2 3 2 1 2 3 2 1 5输出样例2&#xff1a; 14 思路 题目说从入口开始&#xff0c;只能向右或向下行走到达右下角&#xff0c;类似“摘花生”这道题的模型。题目又说只有当格子里的宝…...

同态滤波算法详解

同态滤波是一种用于增强图像的方法&#xff0c;特别适用于去除图像中的照明不均和阴影。该算法基于照射反射模型&#xff0c;将图像分解为两个分量&#xff1a;照射分量&#xff08;illumination component&#xff09;和反射分量&#xff08;reflection component&#xff09;…...

财务管理系统报账和挂账分别什么区别!报销又是什么【第三期】

前言 已经写了两期 财务管理系统之saas多租户架构是什么以及分库分表以及如何选择分布式事务方案 【程序员聊业务】财务管理系统之模块分类 报账和挂账概念 报账是指企业或个人因业务需要而发生的各项费用支出&#xff0c;在支付后&#xff0c;需要将相关的票据、凭证等提交…...

最少刷题数

最少刷题数 题目分析 对于每一名同学计算还需要再刷多少题才能保证刷题数比他多的人数不超过刷题数比他少的学生人数。我们可以考虑统计每一个分数的前缀和数组&#xff0c;sum[i]表示当前学生中&#xff0c;刷题数小于等于i的人数。那么对于学生i的刷题数a[i]&#xff0c;su…...

Python刘诗诗

写在前面 刘诗诗在电视剧《一念关山》中饰演了女主角任如意&#xff0c;这是一个极具魅力的女性角色&#xff0c;她既是一位有着高超武艺和智慧的女侠士&#xff0c;也曾经是安国朱衣卫前左使&#xff0c;身怀绝技且性格坚韧不屈。剧中&#xff0c;任如意因不满于朱衣卫的暴行…...

探索ChatGPT在软件架构师工作中的应用

随着人工智能技术的不断发展&#xff0c;自然语言处理模型如OpenAI的ChatGPT已经成为了解决各种实际问题的强大工具之一。在软件架构师这个领域&#xff0c;ChatGPT也有着广泛的应用。本文将探讨软件架构师如何有效地利用ChatGPT来解决问题和提高工作效率。 ChatGPT简介 Chat…...

pytest--allure报告中添加用例详情

前言 前面介绍了如何生成allure的报告&#xff0c;看着allure的页面非常好看&#xff0c;但是感觉少了一些内容&#xff0c;allure还可以增加一些用例详情内容&#xff0c;这样让我们的报告看着更加绚丽。 allure增加用例详情 我们可以在报告测试套件中增加用例详情内容。 …...

【深度学习笔记】9_5 多尺度目标检测

注&#xff1a;本文为《动手学深度学习》开源内容&#xff0c;部分标注了个人理解&#xff0c;仅为个人学习记录&#xff0c;无抄袭搬运意图 9.5 多尺度目标检测 在9.4节&#xff08;锚框&#xff09;中&#xff0c;我们在实验中以输入图像的每个像素为中心生成多个锚框。这些…...

Linux--vim

一.什么是vim Vim&#xff08;Vi IMproved&#xff09;是一种文本编辑器&#xff0c;通常在Linux和其他类Unix操作系统中使用。它是Vi编辑器的增强版本&#xff0c;提供了更多的功能和定制选项。Vim具有强大的文本编辑和编程功能&#xff0c;支持语法高亮、代码折叠、宏录制、…...

FreeRTOS操作系统学习——中断管理

中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测&#xff0c;中断服务例程(ISR)中的处理量应当越短越好。ISR是在内核中被调用的&#xff0c; ISR执行过程中&#xff0c;用户的任务…...

DHCP中继实验(思科)

华为设备参考&#xff1a;DHCP中继实验&#xff08;华为&#xff09; 一&#xff0c;技术简介 DHCP中继&#xff0c;可以实现在不同子网和物理网段之间处理和转发DHCP信息的功能。如果DHCP客户机与DHCP服务器在同一个物理网段&#xff0c;则客户机可以正确地获得动态分配的IP…...

业绩大增37%,订单超210亿!博泰车联财报释放强信号,龙头未来可期

日前&#xff0c;博泰车联交出了上市后的首份亮眼「成绩单」。财报显示&#xff0c;博泰车联2025年全年实现营收35.1亿元&#xff0c;较上年大幅增长37.26%&#xff1b;过去的几年间&#xff0c;博泰车联的营收规模实现爆发式增长&#xff0c;年复合增长率达44.9%。这种高增长态…...

栈(C语言)

目录 1. 栈的定义 2. 代码实现 1. 栈的定义 栈属于线性表&#xff0c;具有后进先出的特点&#xff0c;存储结构类似羽毛球桶&#xff0c;可以依次取出最后放入栈中的数据。实现&#xff1a;栈一般采用数组 / 链表实现&#xff0c;但是推荐程度&#xff1a;数组 > 单链表 …...

清华大学重磅突破:让AI汽车真正听懂你说话,想去哪就去哪!

这项由清华大学计算机科学与技术系和GigaAI公司联合开展的研究于2026年3月26日发表在计算机视觉顶级会议论文中&#xff0c;论文编号为arXiv:2603.25741v1。有兴趣深入了解技术细节的读者可以通过该编号查询完整论文内容。汽车能像人类司机一样理解复杂的语言指令&#xff0c;并…...

Mermaid在线编辑器终极指南:免费实时图表创作工具完全解析

Mermaid在线编辑器终极指南&#xff1a;免费实时图表创作工具完全解析 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-live-ed…...

突破Unity资源处理瓶颈:UABEA的跨平台资源管理革命

突破Unity资源处理瓶颈&#xff1a;UABEA的跨平台资源管理革命 【免费下载链接】UABEA c# uabe for newer versions of unity 项目地址: https://gitcode.com/gh_mirrors/ua/UABEA 你是否曾遇到这样的困境&#xff1a;下载的Unity资源包无法用常规软件打开&#xff1f;提…...

如何在Linux系统中无缝运行Windows应用:WinApps完整配置指南

如何在Linux系统中无缝运行Windows应用&#xff1a;WinApps完整配置指南 【免费下载链接】winapps Run Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Har…...

Phi-4-mini-reasoningGPU算力适配:A10/A100/T4多卡环境下的推理吞吐调优

Phi-4-mini-reasoning GPU算力适配&#xff1a;A10/A100/T4多卡环境下的推理吞吐调优 1. 模型特性与部署概述 Phi-4-mini-reasoning 是一款专注于推理任务的文本生成模型&#xff0c;特别擅长处理数学题、逻辑题等需要多步分析和简洁结论输出的场景。与通用聊天模型不同&…...

终极SyntaxHighlighter CDATA处理指南:如何实现完美的XML兼容性

终极SyntaxHighlighter CDATA处理指南&#xff1a;如何实现完美的XML兼容性 【免费下载链接】syntaxhighlighter SyntaxHighlighter is a fully functional self-contained code syntax highlighter developed in JavaScript. 项目地址: https://gitcode.com/gh_mirrors/sy/s…...

Qwen2.5深度微调成果展示|像素剧本圣殿在武侠/赛博朋克题材表现

Qwen2.5深度微调成果展示&#xff5c;像素剧本圣殿在武侠/赛博朋克题材表现 1. 项目概览 像素剧本圣殿&#xff08;Pixel Script Temple&#xff09;是基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这个独特的创作环境将先进的大语言模型能力与8-Bit复古美学完美融合…...

别再忍受小窗口了!手把手教你给Ubuntu虚拟机装VMware Tools实现完美全屏

告别局促视界&#xff1a;Ubuntu虚拟机全屏显示的终极解决方案 第一次在VMware里启动Ubuntu时&#xff0c;那个缩在屏幕一角的小窗口简直像被关在笼子里的鸟——明明有广阔的显示空间&#xff0c;却只能蜷缩着操作。拖动文件得来回滚动&#xff0c;阅读文档要不断放大&#xff…...