树莓派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。本地跑不通请检查自己的项目。

bash 复制代码
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),将下述代码写入(需要修改的地方,我已经标注出)

    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

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

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

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

    bash 复制代码
    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应用运行起来需要点时间

相关推荐
知守观2 分钟前
Spring Boot 2.1.0 停维护5年,10个依赖4个有CVE——2022年老项目的安全体检报告
spring boot·后端
FYKJ_20102 分钟前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
javascript·vue.js·spring boot·mysql·typescript·spark·express
SimonKing4 分钟前
SSE项目`nexus-sse`持续优化,不一样的视觉效果
java·后端·程序员
斑鸠喳喳5 分钟前
读写锁模式 Read-Write Lock
java·后端
信誓旦旦的程序猿34 分钟前
【Python 量化取数指南 #09】Python 拿港股通数据:港股通成交与港股财报实测
java·python·股票数据api·股票数据·股票数据api接口·股票api数据接口·股票量化数据api
FYKJ_201035 分钟前
springboot羽毛球场地管理系统00626-计算机课程设计、毕业设计
vue.js·spring boot·python·mysql·typescript·spark·django
Wx-bishekaifayuan43 分钟前
django医院营收信息预测系统49414-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
Wx-bishekaifayuan44 分钟前
springboot会议室预约管理系统42030-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
Wx-bishekaifayuan1 小时前
springboot生活商城系统21035-计算机课程设计、毕业设计
spring boot·后端·python·spring·elasticsearch·golang·课程设计
小程序设计1 小时前
本科毕设避坑|大数据 / 单片机物联网 / 网络工程 / PLC / 机械设计选题与落地心得
java·hive·hadoop·单片机