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

树莓派4B(Raspberry Pi 4B)使用docker搭建springBoot/springCloud服务

树莓派4B(Raspberry Pi 4B)使用docker搭建springBoot/springCloud服务

前提:本文基于Ubuntu,Java8,SpringBoot 2.6.13讲解

准备工作

准备SpringBoot/SpringCloud项目jar包

maven 打包springBoot/springCloud项目,先在本地跑一跑,是否可以正常运行,特别注意哈!如果项目访问数据库,redis等运行在docker容器的服务,那么你的IP不能配置成树莓派IP,必须是docker network 内分配的IP,用命令docker network inspcet NETWORK_NAME 查看。所以你的项目需要准备3个yaml文件:application.yaml,application-dev.yaml,application-test.yaml;本地配置放dev里,docker的配置放test里,项目在本地能够跑通再把application.yaml里的spring.profiles.active 配置改成test。本地跑不通请检查自己的项目。

java -jar demo.jar # 把demo.jar包换成你的jar包名

下载jdk-8u391-linux-aarch64.tar.gz

到oracle(Java Downloads | Oracle 中国)下载

Tips:如果你所处的国内互联网无法访问到以上网址,如不嫌弃请使用我分享的百度云盘下载jdk.tar.gz(链接:https://pan.baidu.com/s/1n4WjOslFL-JBG2tq-7Fd1g?pwd=a3i2
提取码:a3i2)

编写dockerfile

  1. 将上述的 demo.jar(换成你自己的jar包) , jdk-8u391-linux-aarch64.tar.gz 上传到树莓派

  2. 通过SSH登录树莓派后,切换到root用户(命令:su root

  3. root目录下新建一个文件夹 mkdir /root/spring_dockerfile,将已上传的文件 mv 到📂 spring_dockerfile

  4. 创建dockerfile📄并给文件授权mkdir dockerfile && chmod +x dockerfile

  5. 打开dockerfile📄文件(vim dockerfile),将下述代码写入(需要修改的地方,我已经标注出)

    FROM	ubuntu
    WORKDIR	/usr/local
    USER	root
    RUN apt-get update
    RUN apt-get install -y net-tools
    RUN apt-get install -y iputils-ping
    # 创建两个文件夹,用于放JRK和springboot的应用
    RUN mkdir /usr/local/java /usr/local/spring_application
    # JAVA 环境变量配置
    ENV	JAVA_HOME /usr/local/java/jdk1.8.0_391
    ENV	JRE_HOME ${JAVA_HOME}/jre
    ENV	CLASSPATH .:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib:${JRE_HOME}/lib
    ENV	PATH ${JAVA_HOME}/bin:${PATH}
    # 添加JDK
    ADD ./jdk-8u391-linux-aarch64.tar.gz /usr/local/java
    # 将jar包拷入到对应目录下(根据自己的配置做修改)
    COPY  ./demo.jar /usr/local/spring_application
    # 对外暴露端口(根据自己的配置做修改)
    EXPOSE 8008
    # 运行(根据自己的配置做修改)
    CMD ["-jar","/usr/local/spring_application/demo.jar"]
    ENTRYPOINT ["java"]
    

构建 并 生成容器

  1. 拉取Ubuntu

    docker pull ubuntu
    docker images | grep ubuntu # 检查Ubuntu是否已经被拉入本地(这条命令可忽略不执行)
    
  2. 构建镜像

    进入到 spring_dockerfile 目录下,⚠️ 构建不会立刻完成,请耐心等待

    # 注意我的注释,改成你的配置。此外:命令结尾有个点,不然构建失败,我给镜像取名spring-demo:1.0,你也可以自定义名称,不过一定要遵循<name>:<tag>的命名规则
    docker build -f dockerfile -t spring-demo:1.0 . 
    docker images | grep spring-demo # 检查spring-demo是否已经被构建完毕且在本地(这条命令可忽略不执行)
    
  3. 生成容器

    docker run -itd --name=spring-demo -p 8008:8008 spring-demo:1.0
    docker ps | grep spring-demo# 检查容器是否生成且处于运行状态(这条命令可忽略不执行)
    
  4. 到此,springboot/springcloud应用就已经跑在docker上了,用浏览器访问 http://树莓派IP:端口 就可以成功访问到spring应用了,如果一次请求无法访问,就多试几次,因为spring应用运行起来需要点时间

相关文章:

树莓派4B(Raspberry Pi 4B)使用docker搭建springBoot/springCloud服务

树莓派4B&#xff08;Raspberry Pi 4B&#xff09;使用docker搭建springBoot/springCloud服务 前提&#xff1a;本文基于Ubuntu&#xff0c;Java8&#xff0c;SpringBoot 2.6.13讲解 准备工作 准备SpringBoot/SpringCloud项目jar包 用 maven 打包springBoot/springCloud项目&…...

数据库设计、JDBC、数据库连接池

数据库设计 数据库设计概念 数据库设计就是根据业务 系统的具体需求&#xff0c;结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。建立数据库中的表结构以及表与表之间的关联关系的过程。有哪些表?表里有哪些字段?表和表之间有什么关系? 数据库设计的步骤…...

SpringBoot实现OneDrive文件上传

SpringBoot实现OneDrive文件上传 源码 OneDriveUpload: SpringBoot实现OneDrive文件上传 获取accessToken步骤 参考文档&#xff1a;针对 OneDrive API 的 Microsoft 帐户授权 - OneDrive dev center | Microsoft Learn 1.访问Azure创建应用Microsoft Azure&#xff0c;使…...

C++初阶:容器适配器介绍、stack和queue常用接口详解及模拟实现

介绍完了list类的相关内容后&#xff1a;C初阶&#xff1a;适合新手的手撕list&#xff08;模拟实现list&#xff09; 接下来进入新的篇章&#xff0c;stack和queue的介绍以及模拟&#xff1a; 文章目录 1.stack的初步介绍2.stack的使用3.queue的初步介绍4.queue的使用5.容器适…...

GRUB and the Boot Process on UEFI-based x86 Systems

background info : BIOS and UEFI-CSDN博客 The UEFI-based platform reads the partition table on the system storage and mounts the EFI System Partition (ESP), a VFAT partition labeled with a particular globally unique identifier (GUID). The ESP contains EFI a…...

2.C语言——输入输出

1.字符输入输出函数 1.输入:getchar() 字面意思&#xff0c;接收单个字符&#xff0c;使用方法 char a; a getchar();实际上效果等同于char a; scanf("%c",&a);2.输出:putchar() 2.格式化输入输出函数 1.输入:scanf() 格式&#xff1a; scanf(“格式控制…...

MySQL篇之SQL优化

一、表的设计优化 表的设计优化&#xff08;参考阿里开发手册《嵩山版》&#xff09;&#xff1a; 1. 比如设置合适的数值&#xff08;tinyint int bigint&#xff09;&#xff0c;要根据实际情况选择。 2. 比如设置合适的字符串类型&#xff08;char和varchar&#xff09…...

QGis —— 1、Windows10下载安装QGis及插件

QGis官网 QGIS&#xff08;自由开源的地理信息系统&#xff09;是一个专业的GIS应用程序&#xff0c;它建立在免费和开源软件&#xff08;FOSS&#xff09;之上&#xff0c;并为此而自豪。QGIS 是一个方便使用的开源地理信息系统 (GIS)&#xff0c;根据 GNU 通用公共许可授权。…...

【打工日常】使用docker部署Dashdot工具箱

一、Dashdot介绍 dashdot是一个简洁清晰的服务器数据仪表板&#xff0c;基于React实现 &#xff0c;主要是显示操作系统、进程、存储、内存、网络这五个的数据。 二、本次实践介绍 1. 本次实践简介 本次实践部署环境为个人测试环境 2. 本地环境规划 本次实践环境规划&#xf…...

使用client-only 解决组件不兼容SSR问题

目录 前言 一、解决方案 1.基于Nuxt 框架的SSR应用 2.基于vue2框架的应用 3.基于vue3框架的应用 二、总结 往期回顾 前言 最近在我的单页面SSR应用上开发JSON编辑器功能&#xff0c;在引入组件后直接客户端跳转OK&#xff0c;但是在直接加载服务端渲染的时候一直报这…...

基于Java SSM框架实现网上报名系统项目【项目源码+论文说明】

基于java的SSM框架实现网上报名系统演示 摘要 随着互联网时代的到来&#xff0c;同时计算机网络技术高速发展&#xff0c;网络管理运用也变得越来越广泛。因此&#xff0c;建立一个B/S结构的网上报名系统&#xff0c;会使网上报名系统工作系统化、规范化&#xff0c;也会提高网…...

7.1 Qt 中输入行与按钮

目录 前言&#xff1a; 技能&#xff1a; 内容&#xff1a; 参考&#xff1a; 前言&#xff1a; line edit 与pushbotton的一点联动 当输入行有内容时&#xff0c;按钮才能使用&#xff0c;并能读出输入行的内容 技能&#xff1a; pushButton->setEnabled(false) 按钮不…...

云计算基础-网络虚拟化

虚拟交换机 什么是虚拟交换机 虚拟交换机是一种运行在虚拟化环境中的网络设备&#xff0c;其运行在宿主机的内存中&#xff0c;通过软件方式在宿主机内部实现了部分物理交换机的功能&#xff0c;如 VLAN 划分、流量控制、QoS 支持和安全功能等网络管理特性 虚拟交换机在云平…...

166基于matlab的通过峭度指标与互相关系数筛选IMF进行SVD分解去噪

基于matlab的通过峭度指标与互相关系数筛选IMF进行SVD分解去噪&#xff0c;分辨虚假imf&#xff0c;提取最大峭度imf图。输出去噪前后时域及其包络谱结果。程序已调通&#xff0c;可直接运行。 166 matlab SVD去噪 IMF筛选 包络谱 (xiaohongshu.com)...

第六十三天 服务攻防-框架安全CVE复现DjangoFlaskNode.JSJQuery

第六十三天 服务攻防-框架安全&CVE复现&Django&Flask&Node.JS&JQuery 知识点&#xff1a; 中间件及框架列表&#xff1a; IIS,Apache,Nginx,Tomcat,Docker,K8s,Weblogic.JBoos,WebSphere, Jenkins,GlassFish,Jetty,Jira,Struts2,Laravel,Solr,Shiro,Thin…...

最大子序和+旅行问题——单调队列

一、最大子序和 输入一个长度为 n 的整数序列&#xff0c;从中找出一段长度不超过 m 的连续子序列&#xff0c;使得子序列中所有数的和最大。 注意&#xff1a; 子序列的长度至少是 1。 输入 第一行输入两个整数 n,m (1 ≤ n,m ≤ 300000)。 第二行输入 n 个数&#xff0c;代…...

Unity设备分级策略

Unity设备分级策略 前言 之前自己做的设备分级策略&#xff0c;在此做一个简单的记录和思路分享。希望能给大家带来帮助。 分级策略 根据拟定的评分标准&#xff0c;预生成部分已知机型的分级信息&#xff0c;且保存在包内&#xff1b;如果设备没有被评级过&#xff0c;则优…...

自己在开发AI应用的过程总结的 Prompt - 持续更新

自己在开发AI应用的过程总结的 Prompt - 持续更新 0. 引言1. 让模型以"中文"进行回复2. 控制模型仅输出"hi"3. 让模型"提供简单、清晰而具体的回答"4. 让模型"在最后说谢谢" 0. 引言 我想&#xff0c;我们多半有着相似的经历&#xf…...

STM32——OLED菜单

文章目录 一.补充二. 二级菜单代码 简介&#xff1a;首先在我的51 I2C里面有OLED详细讲解&#xff0c;本期代码从51OLED基础上移植过来的&#xff0c;可以先看完那篇文章&#xff0c;在看这个&#xff0c;然后按键我是用的定时器扫描不会堵塞程序,可以翻开我的文章有单独的定时…...

Open CASCADE学习|布尔运算后消除内部拓扑

在CAD建模中&#xff0c;布尔运算是一种逻辑运算方法&#xff0c;通过这种方法&#xff0c;可以创建、修改或组合几何对象。布尔运算主要包括并集&#xff08;UNION&#xff09;、交集&#xff08;INTERSECT&#xff09;和差集&#xff08;SUBTRACT&#xff09;三种运算。 并集…...

面向对象分析(OOA)的第一个步骤是**识别问题域中的对象和类**(也称为“识别对象与类”或“确定问题域中的概念类”)

面向对象分析&#xff08;OOA&#xff09;的第一个步骤是识别问题域中的对象和类&#xff08;也称为“识别对象与类”或“确定问题域中的概念类”&#xff09;。 这一步要求分析师深入理解用户需求和现实世界的问题背景&#xff0c;通过用例分析、领域建模、名词提取等方法&…...

自动同步总失败?NotebookLM本地缓存+云端快照双轨备份,手把手配置到上线仅需7分钟

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM数据备份方案 NotebookLM 是 Google 推出的基于用户上传文档进行 AI 助理问答的工具&#xff0c;但其本身不提供原生数据导出或持久化存储功能。为防止项目上下文丢失、模型重置或账户异常导…...

从双非到科软:我的22408备考复盘与实战指南

1. 双非逆袭科软&#xff1a;我的备考心路历程 作为一名双非院校的计算机专业学生&#xff0c;我深知考研这条路有多难走。去年这个时候&#xff0c;我也和屏幕前的你一样&#xff0c;在知乎、贴吧疯狂搜索各种经验贴&#xff0c;既期待又忐忑。现在回想起来&#xff0c;从3月到…...

3步深度解决方案:彻底修复Krita AI Diffusion插件IP-Adapter缺失问题

3步深度解决方案&#xff1a;彻底修复Krita AI Diffusion插件IP-Adapter缺失问题 【免费下载链接】krita-ai-diffusion Streamlined interface for generating images with AI in Krita. Inpaint and outpaint with optional text prompt, no tweaking required. 项目地址: h…...

算力基石:CPU、GPU与嵌入式AI的技术逻辑与融合发展

在人工智能全面普及的时代&#xff0c;算力已经成为数字产业发展的核心驱动力。从日常使用的智能手机、家用电脑&#xff0c;到云端大模型、智能汽车、工业传感设备&#xff0c;各类智能终端的运转都离不开处理器的算力支撑。其中&#xff0c;CPU作为通用计算核心、GPU作为并行…...

STM32H7网络延迟问题分析与解决方案

1. 问题现象与背景分析最近在将STM32H7系列设备的DFP&#xff08;Device Family Pack&#xff09;从v2.2.0升级到v2.3.0版本后&#xff0c;不少开发者反馈网络数据传输出现了明显的延迟问题。通过简单的ping测试可以直观观察到&#xff0c;使用v2.3.0版本的往返时间(RTT)相比v2…...

5分钟终极指南:用HunterPie轻松提升《怪物猎人:世界》狩猎效率

5分钟终极指南&#xff1a;用HunterPie轻松提升《怪物猎人&#xff1a;世界》狩猎效率 【免费下载链接】HunterPie-legacy A complete, modern and clean overlay with Discord Rich Presence integration for Monster Hunter: World. 项目地址: https://gitcode.com/gh_mirr…...

DevEco Studio预览器(Previewer)的3个隐藏技巧:从实时预览到多设备联调

DevEco Studio预览器的3个隐藏技巧&#xff1a;从实时预览到多设备联调 在鸿蒙应用开发中&#xff0c;DevEco Studio的Previewer功能早已超越了简单的UI查看工具。对于已经掌握基础操作的中级开发者而言&#xff0c;如何将这个看似简单的预览窗口转变为高效调试利器&#xff0…...

从HelloWorld到真实机器人:Fast DDS QoS策略实战指南(以导航数据发布为例)

从HelloWorld到真实机器人&#xff1a;Fast DDS QoS策略实战指南&#xff08;以导航数据发布为例&#xff09; 在机器人开发领域&#xff0c;数据传输的可靠性和实时性直接关系到系统的稳定性和安全性。当你的机器人从实验室demo走向真实场景时&#xff0c;简单的HelloWorld示例…...

嵌入式开发实战:SPI、UART、I2C三大硬件接口通信协议详解与CircuitPython应用

1. 项目概述&#xff1a;为什么硬件接口是嵌入式开发的基石如果你玩过单片机或者树莓派&#xff0c;肯定遇到过这样的场景&#xff1a;手里有一块炫酷的LED灯带、一个GPS模块或者一个环境传感器&#xff0c;想让它和你的主控板“说上话”&#xff0c;结果发现连线复杂、代码难调…...