找回密码
 立即注册
首页 业界区 安全 树莓派4B 基于 ubuntu24 移植 Ruoyi

树莓派4B 基于 ubuntu24 移植 Ruoyi

靛尊 前天 10:15
树莓派换源  & 安装配置docker (ubuntu24)

<ol>从树莓派官网下载工具"树莓派镜像烧录器"
从ubuntu官网下载Ubuntu 24.04.2 LTS: https://ubuntu.com/download/raspberry-pi
硬件要求:最少4GB ram 和 16GB 磁盘
下载完整后,得到:ubuntu-24.04.2-preinstalled-desktop-arm64+raspi.img.xz
需要解压成:ubuntu-24.04.2-preinstalled-desktop-arm64+raspi.img
使用树莓派镜像烧录器烧录镜像
CHOOSE DEVICE - 选择树莓派4 (根据实际型号来)
操作系统 -> Use custom -> ubuntu-24.04.2-preinstalled-desktop-arm64+raspi.img
选择SD卡 -> 实际的sd卡
点击 NEXT
然后可以编辑设置,实现预配置(用户名,wifi, 国家, 键盘, 时区, 开启ssh服务等)(这一步好像没啥用,启动系统后还要再设一遍)
格式化并写入sd卡
将 SD 卡插入到树莓派,启动系统,配置语言、时区、用户、密码、时区等,安装系统
ubuntu24 系统比较吃资源,后续可以选择更低版本的系统,跑个火狐浏览器就可以把cpu全占满。并且系统太大了,内存释放也比较慢。这样看来,还是debian比较好。
打开火狐浏览器,下载vnc server https://www.realvnc.com/en/connect/download/?lai_vid=gxl0mpADGIy9x&lai_sr=5-9&lai_sl=l 下载版本选择树莓派版本+arm64,下载完毕后,安装即可。安装完毕,如果要求登录,选择跳过,即可实现登录
安装基础的工具
  1. sudo apt update
  2. # 网络工具
  3. sudo apt install net-tools
  4. # ssh
  5. sudo apt install openssl-server
  6. # iftop
  7. sudo apt install iftop
  8. # vim
  9. sudo apt install vim
  10. # 自动补全(比较大,341MB,选择安装)
  11. sudo apt install auto-complete-el
  12. # 安装完毕后编辑 /etc/bash.bashrc
  13. # 将这一段解开注释
  14. # sudo hint
  15. if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
  16.     case " $(groups) " in *\ admin\ *|*\ sudo\ *)
  17.     if [ -x /usr/bin/sudo ]; then
  18.         cat <<-EOF
  19.         To run a command as administrator (user "root"), use "sudo <command>".
  20.         See "man sudo_root" for details.
  21.         EOF
  22.     fi
  23.     esac
  24. fi
  25. sudo apt install python3-pip
  26. # 配置python3 pip 源 (跳过此步骤,ubuntu24 安装python依赖库改成了 sudo apt install python3-库名 的形式)
  27. # sudo su
  28. # cd ~
  29. # mkdir .pip
  30. # cd .pip
  31. # touch pip.conf
  32. # pip.conf 内容如下
  33. # [global]
  34. # index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  35. # [install]
  36. # trusted-host=pypi.tuna.tsinghua.edu.cn
复制代码

  • 拉取项目
    1. cd /etc/apt/sources.list.d
    2. sudo touch mysource.sources
    3. sudo vim mysource.sources
    4. # 内容如下
    5. # 清华源
    6. Types: deb
    7. URIs: http://mirrors.tuna.tsinghua.edu.cn/ubuntu/
    8. Suites: noble noble-updates noble-security
    9. Components: main restricted universe multiverse
    10. Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
    11. # 阿里源
    12. Types: deb
    13. URIs: http://mirrors.aliyun.com/ubuntu/
    14. Suites: noble noble-updates noble-security
    15. Components: main restricted universe multiverse
    16. Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
    复制代码
  • 使用idea打开项目(建议用新版本的idea,我用的2023.1, 之前用2021打开会有点问题, 当然,如果习惯eclipse的话, 官网推荐用eclipse打开)
    必要配置

    • 修改数据库连接,编辑resources目录下的application-druid.yml
    1. sudo apt install docker.io
    2. # 查看 docker 版本
    3. docker -v
    4. # Docker version 27.5.1, build 27.5.1-0ubuntu3~24.04.2
    5. apt install docker-compose
    6. docker-compose version
    7. # docker-py version: 5.0.3
    8. # CPython version: 3.12.3
    9. # OpenSSL version: OpenSSL 3.0.13 30 Jan 2024
    10. # 更换Docker镜像源
    11. # 切换为 root 用户,否则会报错无权限
    12. sudo -i
    13. cat > /etc/docker/daemon.json <<EOF
    14. {
    15.     "log-driver": "json-file",
    16.     "log-opts": {
    17.         "max-size": "20m",
    18.         "max-file": "3"
    19.     },
    20.     "ipv6": true,
    21.     "fixed-cidr-v6": "fd00:dead:beef:c0::/80",
    22.     "experimental":true,
    23.     "ip6tables":true,
    24.     "registry-mirrors": [
    25.       "https://registry.hub.docker.com",
    26.       "http://hub-mirror.c.163.com",
    27.       "https://mirror.baidubce.com",
    28.       "https://docker.mirrors.sjtug.sjtu.edu.cn",
    29.       "https://docker.nju.edu.cn",
    30.       "https://docker.m.daocloud.io",
    31.       "https://dockerhub.icu",
    32.       "https://docker.anyhub.us.kg",
    33.       "https://docker.1panel.live"
    34.     ]
    35. }
    36. EOF
    37. # 重启一下daemon和docker服务
    38. sudo systemctl daemon-reload  #重启daemon进程
    39. sudo systemctl restart docker.service  #重启docker
    40. # 查看docker配置信息
    41. docker info
    42. # 尝试拉取镜像
    43. docker pull nginx:latest
    44. # docker pull docker.1panel.live/docker.io/openresty/openresty
    45. docker pull redis:latest
    46. # docker pull mysql:latest # 9.0 版本,太新了
    47. docker pull docker.xuanyuan.me/library/mysql:8.0
    48. # 开始准备用 node 编译下vue,后来发现vue不需要交叉编译,直接在windows上编译好了放到nginx就可以
    49. # docker pull node:latest # 24
    50. # docker pull node:16
    复制代码

    • 修改服务器配置,编辑resources目录下的application.yml
    1. # 方式一,直接安装
    2. sudo apt install openjdk-8-jdk
    3. # 方式二,使用java安装包自行安装 (arm64的java8安装包)
    4. sudo mkdir -p /usr/local/java
    5. sudo tar -zxvf jdk-8u281-linux-aarch64-serial.tar.gz -C /usr/local/java
    6. # 编辑 /etc/profile, 添加如下配置
    7. export JAVA_HOME=/usr/local/java/jdk1.8.0_281
    8. export PATH=$JAVA_HOME/bin:$PATH
    9. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    10. # 验证
    11. source /etc/profile
    12. java -version
    13. # java version "1.8.0_281"
    14. # Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
    15. # Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
    16. # 注意:如果想要用root执行java,需要用指令 su -i 切换root,不可以用 sudo su (只会切换用户,但不加载该用户的登录环境/etc/profile) (这里后续可以改进一下)
    复制代码
    修改 ruoyi-admin的配置文件中的数据库用户名和密码,修改文件路径:/home/ruoyi/uploadPath
    打包,打包后会在 RuoYi-Vue\ruoyi-admin\target 生成 ruoyi-admin.jar,这就是主程序包

树莓派环境,后端部署
  1. # 创建目录
  2. #/opt/mysql/8.0/
  3. cd /opt
  4. mkdir mysql
  5. cd mysql
  6. mkdir 8.0
  7. cd 8.0
  8. mkdir conf data log
  9. # 配置my.conf
  10. cd conf
  11. touch my.conf
复制代码
官方给的启动脚本ry.sh有点问题(主要是windows异常行结束符 & 修改执行的sh为 bash)
我改了一下:ry.sh,主要是开头的 #!/bin/sh 改成了 #!/bin/bash
此外,如果报错:-bash: ./ry.sh: 无法执行:找不到需要的文件,大概率就是脚本在windows编辑过,需要在树莓派linux中使用vim打开,然后输入:set ff=unix ,之后保存退出再试就可以了。
  1. [mysqld]
  2. pid-file        = /var/run/mysqld/mysqld.pid
  3. socket          = /var/run/mysqld/mysqld.sock
  4. datadir         = /var/lib/mysql
  5. secure-file-priv= NULL
  6. # Disabling symbolic-links is recommended to prevent assorted security risks
  7. symbolic-links=0
  8. # Custom config should go here
  9. !includedir /etc/mysql/conf.d/
  10. default_authentication_plugin= mysql_native_password
复制代码
  1. cd /opt/mysql/8.0
  2. touch docker-compose.yml
复制代码
前端编译

前端是静态资源库,不需要考虑交叉编译的事情,所以目前方案就是windows打包,然后树莓派nginx部署
进入项目的RuoYi-Vue\ruoyi-ui目录
开发
  1. version: '3.8'  # 可以根据需要调整版本
  2. services:
  3.   mysql:
  4.     container_name: mysql8
  5.     image: docker.xuanyuan.me/library/mysql:8.0
  6.     restart: always  # 可以选择使用 always 或 unless-stopped
  7.     environment:
  8.       MYSQL_ROOT_PASSWORD: root
  9.     ports:
  10.       - "3306:3306"
  11.     volumes:
  12.       - /opt/mysql/8.0/data:/var/lib/mysql:rw
  13.       - /opt/mysql/8.0/log:/var/log/mysql:rw
  14.       - /opt/mysql/8.0/conf/my.cnf:/etc/mysql/my.cnf:rw
  15.       - /etc/localtime:/etc/localtime:ro
复制代码
发布
  1. # 后台启动mysql8容器(调试的话可以去掉-d,另外,停止并删除容器使用 down)
  2. docker-compose up -d
  3. # 进入mysql8
  4. docker exec -it mysql8 bash
  5. # 访问mysql服务(默认密码:root)
  6. mysql -uroot -p
  7. # 配置允许远程访问(下面的密码填充自己的密码,比如 123456)
  8. alter user 'root'@'%' identified with mysql_native_password by '密码';
  9. FLUSH PRIVILEGES;
  10. exit
  11. # 退出容器
  12. exit
复制代码
树莓派部署
  1. mkdir -p /opt/redis
  2. cd /opt/redis
  3. mkdir /data
  4. touch docker-compose.yml
复制代码
ruoyi.conf
  1. version: '3.8'  # 可以根据需要调整版本
  2. services:
  3.   redis:
  4.     container_name: redis_container
  5.     image: redis:latest
  6.     restart: always  # 可以选择使用 always 或 unless-stopped
  7.     network_mode: "host"  # 使用主机网络
  8.     volumes:
  9.       - /opt/redis/data:/data
  10.       - /etc/localtime:/etc/localtime:ro
复制代码
docker-compose.yml
  1. JDK >= 1.8 (推荐1.8版本)
  2. Mysql >= 5.7.0 (推荐5.7版本)
  3. Redis >= 3.0
  4. Maven >= 3.0
  5. Node >= 12
复制代码
  1. git clone https://gitee.com/y_project/RuoYi-Vue.git
复制代码
浏览器访问http://树莓派ip,即可访问若依界面。
后续实际运行发现,页面运行一段时间,就跳出来登不进去了,登录一直报错。在windows本地运行没问题,估计还是环境有点问题。仅当做一次探索和记录吧,后续会想办法优化。
参考文档

[1]. 无法拉取 Docker 镜像?树莓派4B 安装Docker并配置Docker镜像源分享
[2]. docker设置国内镜像源
[3]. 树莓派4B学习笔记四--基于Docker搭建Nginx,在Nginx服务器上部署Vue项目
[4]. 第四章:ubuntu 24.04配置清华源
[5]. Ubuntu24.04换源方法(新版源更换方式)

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册