Ubuntu 22.04.5 LTS容器化部署芋道yudao-cloud

该项目是前后端分离的,后端使用spring cloud,前端使用vue3,以下操作均使用root账号在Xshell 8操作

系统配置

系统使用Ubuntu 22.04.5

IP地址为192.168.200.200 /24

4核8G50G硬盘

目录

首先完成系统环境初始化

构建后端服务

安装jdk和maven

拉取后端源码

中间件服务搭建

MySQL

1、部署MySQL

2、导入数据

3、修改后端配置中数据库地址

Redis

1、部署Redis

2、修改后端配置中Redis地址

Nacos

1、部署Nacos

2、创建命名空间

3、修改后端配置中Nacos的地址

构建后端项目

容器化部署前后端服务

制作后端docker镜像

启动后端容器

制作前端docker镜像


首先完成系统环境初始化

Ubuntu 22.04.5 LTS常用插件环境初始化-优快云博客

Ubuntu安装docker与docker-compose-优快云博客

构建后端服务

安装jdk和maven

apt install openjdk-21-jdk maven

打开配置文件 /etc/maven/settings.xml ,找到<mirrors>标签行,将下方的国内源配置至标签内

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun maven</name>
    <url>https://maven.aliyun.com/repository/public </url>
</mirror>

拉取后端源码

mkdir -p /opt/gitdir
cd /opt/gitdir
git clone https://gitee.com/zhijiantianya/yudao-cloud.git

切换分支

cd /opt/gitdir/yudao-cloud/
git tag
# 显示当前所有tag
v1.0.0
v1.7.1
v1.7.2
v1.7.3
v1.8.0
v1.8.1
v1.8.2
v1.8.3
v1.9.0
v2.0.0
v2.0.1
v2.1.0
v2.1.0(jdk17/21)
v2.2.0(jdk17/21)
v2.2.0(jdk8/11)
v2.3.0(jdk17/21)
v2.3.0(jdk8/11)
v2.4.0(jdk17/21)
v2.4.0(jdk8/11)
v2.4.1(jdk17/21)
v2.4.1(jdk8/11)
v2.4.2(jdk17/21)
v2.4.2(jdk8/11)
v2.5.0(jdk17/21)
v2.5.0(jdk8/11)
v2.6.0(jdk17/21)
v2.6.0(jdk8/11)
v2.6.1(jdk17/21)
v2.6.1(jdk8/11)
v2025.08(jdk17/21)
v2025.08(jdk8/11)
v2025.09(jdk17/21)
v2025.09(jdk8/11)
v2025.10(jdk17/21)
v2025.10(jdk8/11)

选择最新版本v2025.10(jdk17/21)

git checkout v2025.10\(jdk17/21\)

切换后,验证是否切换成功

git branch
* (头指针在 v2025.10(jdk17/21) 分离)
  master

暂时先不构建后端项目

中间件服务搭建

yudao-cloud微服务框架的运行,必须要安装3个基础的中间件组件,Redis、MySQL、Nacos

  • ​Mysql​:数据库
  • ​Redis​:缓存
  • ​Nacos​:注册中心配置中心

这里我们使用docker容器部署

MySQL

1、部署MySQL

docker run -d -p 3306:3306 \
  --restart=unless-stopped \
  --name=yudao_mysql \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v "/etc/localtime:/etc/localtime" \
  -v yc_mysql:/var/lib/mysql \
  mysql:8.4.2

2、导入数据

使用mysql创建数据库​ruoyi-vue-pro,并将拉取的后端项目下的sql目录中的ruoyi-vue-pro.sql导入进去进行初始化

cd /opt/gitdir/yudao-cloud/sql/mysql
docker exec -i yudao_mysql mysql -uroot -p123456 -e 'CREATE DATABASE `ruoyi-vue-pro`;'
docker exec -i yudao_mysql mysql -uroot -p123456 ruoyi-vue-pro < ./ruoyi-vue-pro.sql

3、修改后端配置中数据库地址

数据库连接配置在​application-local.yaml​文件中,默认是使用​127.0.0.1:3306​端口,我们需要将其改成本机ip地址,以下所有操作均在/opt/gitdir/yudao-cloud/下执行

cd /opt/gitdir/yudao-cloud/

查找所有application-local.yaml查看其中的数据库配置

find ./ -name application-local.yaml -exec grep -l 'jdbc:mysql://127.0.0.1:3306' {} +

将数据库连接配置文件中的ip更改成自己的虚拟机ip地址

find ./ -name application-local.yaml -print0 | xargs -0 sed -i 's|jdbc:mysql://127.0.0.1:3306|jdbc:mysql://192.168.200.200:3306|g'

通过查看本机ip地址验证是否修改成功

find ./ -name application-local.yaml -exec grep 'jdbc:mysql://192.168.200.200:3306' {} +

Redis

1、部署Redis

docker run -d \
  --restart=unless-stopped \
  --name=yudao_redis \
  -v "/etc/localtime:/etc/localtime" \
  -p 6379:6379 \
  redis:7.2.5

2、修改后端配置中Redis地址

Redis配置同样在​application-local.yaml​文件中

find ./ -name application-local.yaml -print0 | xargs -0 sed -i 's|host: 127.0.0.1 # 地址|host: 192.168.200.200 # 地址|g'

验证

find ./ -name application-local.yaml -exec grep 'host: 192.168.200.200 # 地址' {} +

Nacos

1、部署Nacos

由于up本机配的清华源拉取不到Nacos,故此处选择华为云仓库进行拉取

docker run -d \
  -p 8848:8848 \
  -p 9848:9848 \
  --restart=unless-stopped \
  --name=yudao_nacos \
  -e MODE=standalone \
  -v "/etc/localtime:/etc/localtime" \
  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.4.0

2、创建命名空间

访问Nacos页面,http://你的虚拟机IP:8848/nacos

3、修改后端配置中Nacos的地址

find ./ -name bootstrap-local.yaml -print0 | xargs -0 sed -i 's|server-addr: 127.0.0.1:8848|server-addr: 192.168.200.200:8848|g'

构建后端项目

# 进入项目根目录
cd /opt/gitdir/yudao-cloud
mvn clean install package '-Dmaven.test.skip=true'

构建速度取决于网速与设备(之前构建过一次所以这次比较快)

容器化部署前后端服务

制作后端docker镜像

后端有3个服务,gateway,system,infra

在yudao-cloud目录下,可以找到他们的子目录,项目已经为我们提供了Dockerfile文件,不需要我们生成

# 制作gateway镜像
cd /opt/gitdir/yudao-cloud/yudao-gateway
docker build -t yudao_gateway .

# 制作system镜像
cd /opt/gitdir/yudao-cloud/yudao-module-system/yudao-module-system-server/
docker build -t yudao_system .

# 制作infra镜像
cd /opt/gitdir/yudao-cloud/yudao-module-infra/yudao-module-infra-server/
docker build -t yudao_infra .

启动后端容器

服务启动的时候会自动注册IP地址到nacos​中,但是docker默认的网络模式是bridge模式,与宿主机不在同一个网段。如果3个服务不在同一台机子运行,是无法通过docker内部地址访问的,因此我们选择host的网络模式,这样docker​使用宿主机的IP地址,注册时也是宿主机的ip地址:

docker run -d \
  --network=host \
  --name yudao_gateway \
  -v "/etc/localtime:/etc/localtime" \
  yudao_gateway

docker run -d \
  --network=host \
  --name yudao_system\
  -v "/etc/localtime:/etc/localtime" \
  yudao_system

docker run -d \
  --network=host \
  --name yudao_infra\
  -v "/etc/localtime:/etc/localtime" \
  yudao_infra

启动完后进行验证:

可以通过docker logs来查看服务的日志

docker logs -f yudao_gateway

制作前端docker镜像

首先到Node官网下载Linux包

将下好的包上传至虚拟机的/opt/目录下

cd /opt
tar xvf node-v24.11.0-linux-x64.tar.xz

添加配置到~/.bashrc​最下面

vim ~/.bashrc
export PATH=$PATH:/opt/node-v24.11.0-linux-x64/bin

重新加载配置

source ~/.bashrc

克隆前端项目

cd /opt/gitdir
git clone https://gitee.com/yudaocode/yudao-ui-admin-vue3.git
cd yudao-ui-admin-vue3
git tag
#选择上面yudao-cloud相同的版本
git checkout v2025.10
node -v #查看版本
v24.11.0

在该前端项目目录下查看隐藏文件,更改为后端(虚拟机)IP地址

ls -a
sed -i 's|localhost|192.168.200.200|g' .env.local

开始构建前端项目

# 设置国内npm源
npm config set registry https://registry.npmmirror.com
# 安装pnpm
npm install -g pnpm
# 设置国内源
pnpm config set registry https://registry.npmmirror.com
# 安装项目包
pnpm install
pnpm build:local

构建这个前端项目需要8G左右的内存,否则会失败

成功后,项目会将编译好的前端静态页面存放到当前目录下的dist​目录中

在此目录下新建Dockerfile文件,制作镜像

FROM nginx:1.27
ADD ./dist/ /usr/share/nginx/html/

构建镜像

docker build -t yudao_ui_admin .

启动容器

docker run --name yudao_ui_admin -d -p 8080:80 yudao_ui_admin

在浏览器中访问页面 http://你的IP:8080

功能正常

至此容器化部署芋道框架完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值