信创环境(openEuler 24.03 + Deepin 25)部署资产管理系统全记录
信创环境(openEuler 24.03 + Deepin 25)部署资产管理系统全记录
从零搭建:PagePlug / JeecgBoot / RuoYi 三套方案实战踩坑与解决方案
一、环境准备篇
1.1 硬件与系统信息
| 项目 | 生产服务器 | 开发环境 |
|---|---|---|
| 操作系统 | openEuler 24.03 LTS SP4 | Deepin 25 |
| 内核版本 | 6.6.0-159.4.3.154.oe2403sp4.x86_64 | - |
| CPU | Xeon Gold 6210U | - |
| 内存 | 4×32GB(128GB) | - |
| Docker 版本 | 26.1.3 | 26.1.3 |
1.2 操作系统基础配置
1.2.1 配置国内镜像源(openEuler)
bash
# 备份原有配置
mv /etc/yum.repos.d/openEuler.repo /etc/yum.repos.d/openEuler.repo.bak
# 创建华为云镜像源
cat > /etc/yum.repos.d/openEuler.repo << 'EOF'
[OS]
name=OS
baseurl=http://repo.huaweicloud.com/openeuler/openEuler-24.03-LTS/OS/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-24.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.huaweicloud.com/openeuler/openEuler-24.03-LTS/everything/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-24.03-LTS/everything/x86_64/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.huaweicloud.com/openeuler/openEuler-24.03-LTS/EPOL/main/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://repo.huaweicloud.com/openeuler/openEuler-24.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
EOF
dnf clean all && dnf makecache
1.2.2 关闭 SELinux
bash
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
1.2.3 配置防火墙
bash
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-port=5432/tcp
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --permanent --add-port=3001/tcp
firewall-cmd --reload
1.3 Docker 环境配置
1.3.1 Docker 版本统一(26.1.3)
问题背景:openEuler 与 Deepin 的 Docker 仓库版本号格式不同,需统一版本。
openEuler 安装命令:
bash
sudo dnf install -y docker-ce-3:26.1.3-1.el8 docker-ce-cli-1:26.1.3-1.el8 containerd.io docker-buildx-plugin docker-compose-plugin
Deepin 安装命令:
bash
sudo apt install -y docker-ce=5:26.1.3-1~debian.12~bookworm docker-ce-cli=5:26.1.3-1~debian.12~bookworm containerd.io docker-buildx-plugin docker-compose-plugin
1.3.2 ❌ 错误:docker-ce-cli-3:26.1.3-1.el8 找不到
报错现象:
text
No match for argument: docker-ce-cli-3:26.1.3-1.el8
Error: Unable to find a match: docker-ce-cli-3:26.1.3-1.el8
原因:docker-ce-cli 的版本前缀是 1:,而 docker-ce 是 3:。
解决方案:
bash
# 分别安装
sudo dnf install -y docker-ce-3:26.1.3-1.el8 docker-ce-cli-1:26.1.3-1.el8
sudo dnf install -y containerd.io docker-buildx-plugin docker-compose-plugin
1.3.3 配置 Docker 国内镜像加速
配置文件:/etc/docker/daemon.json
json
{
"registry-mirrors": [
"https://docker.1panel.live",
"https://hub.rat.dev",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
重启 Docker:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
1.3.4 ❌ 错误:Docker 拉取超时
报错现象:
text
Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
原因:国内访问 Docker Hub 网络不稳定或被限制。
解决方案:配置上述国内镜像加速器后重启 Docker。
1.4 内核版本锁定
目的:避免系统更新导致内核升级,影响 Docker 兼容性。
openEuler:
bash
sudo dnf versionlock add kernel*
Deepin:
bash
sudo apt-mark hold linux-image-* linux-headers-*
二、PostgreSQL 部署与配置
2.1 安装 PostgreSQL
bash
dnf install -y postgresql-server postgresql-contrib
2.2 数据目录配置
目标:将 PostgreSQL 数据目录放在 /data/postgresql(数据盘)。
bash
mkdir -p /data/postgresql
chown postgres:postgres /data/postgresql
chmod 700 /data/postgresql
sudo -u postgres initdb -D /data/postgresql
systemctl stop postgresql
mv /var/lib/pgsql/data /var/lib/pgsql/data.bak
ln -s /data/postgresql /var/lib/pgsql/data
systemctl start postgresql
2.3 ❌ 错误:initdb: error: could not change permissions of directory
报错现象:
text
initdb: error: could not change permissions of directory "/data/postgresql": Operation not permitted
原因:/data/postgresql 目录的所有权不是 postgres 用户。
解决方案:
bash
chown postgres:postgres /data/postgresql
chmod 700 /data/postgresql
2.4 配置远程访问
修改 postgresql.conf:
bash
sed -i "s/#listen_addresses = 'localhost'/listen_addresses = '*'/" /data/postgresql/postgresql.conf
修改 pg_hba.conf:
bash
cat >> /data/postgresql/pg_hba.conf << 'EOF'
host all all 192.168.1.0/24 md5
host all all 172.17.0.0/16 md5
host all all 172.19.0.0/16 md5
EOF
systemctl restart postgresql
2.5 ❌ 错误:PostgreSQL 无法启动,/var/lib/pgsql/data 为空
报错现象:
text
Directory "/var/lib/pgsql/data" is missing or empty.
Use "/usr/bin/postgresql-setup --initdb" to initialize the database cluster.
原因:软链接指向的目录不存在或为空。
解决方案:
bash
rm -f /var/lib/pgsql/data
mkdir -p /data/postgresql
chown postgres:postgres /data/postgresql
chmod 700 /data/postgresql
sudo -u postgres initdb -D /data/postgresql
ln -s /data/postgresql /var/lib/pgsql/data
systemctl start postgresql
三、JeecgBoot 部署全记录
3.1 版本选择策略
| 版本 | AI 模块 | 稳定性 | 推荐程度 |
|---|---|---|---|
| 3.8.3 | 深度集成,强耦合 | 稳定但有依赖问题 | ❌ 不推荐 |
| 3.8.2 | 深度集成 | 稳定 | ❌ 不推荐 |
| 3.7.1 | 无 AI 模块 | 稳定 | ✅ 推荐 |
结论:回退到 3.7.1 彻底避开 AI 模块问题。
3.2 编译环境安装
bash
# 安装 JDK 17
dnf install -y java-17-openjdk java-17-openjdk-devel
# 安装 Maven
dnf install -y maven
# 安装 Node.js 20
curl -sL https://rpm.nodesource.com/setup_20.x | bash -
dnf install -y nodejs
# 安装 pnpm@8(兼容 Node.js 20)
npm install -g pnpm@8
# 验证
java -version
mvn -version
node -v
pnpm -v
3.3 ❌ 错误:Maven 使用 Java 8 而非 Java 17
报错现象:
text
mvn -version
Java version: 1.8.0_492
原因:系统默认 Java 版本为 1.8,需要切换到 JDK 17。
解决方案:
bash
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.11.9-0.oe2403.x86_64
echo "export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-17.0.11.9-0.oe2403.x86_64" >> ~/.bashrc
echo "export PATH=\$JAVA_HOME/bin:\$PATH" >> ~/.bashrc
source ~/.bashrc
3.4 ❌ 错误:pnpm 版本与 Node.js 不兼容
报错现象:
text
warn: This version of pnpm requires at least Node.js v22.13
The current version of Node.js is v20.11.1
解决方案:
bash
npm uninstall -g pnpm
npm install -g pnpm@8
3.5 ❌ 错误:FlowExecutor Bean 找不到(3.8.3 核心问题)
报错现象:
text
Field flowExecutor in org.jeecg.modules.airag.flow.service.a.b required a bean of type 'com.yomahub.liteflow.core.FlowExecutor' that could not be found.
根本原因:
- JeecgBoot 3.8.x 的 AI 模块与核心模块强耦合
SysBaseApiImpl直接@Autowired了IAiragFlowService- 即使配置
liteflow.enable=false,Spring 仍会尝试注入 AI 模块的 Bean
尝试过的解决方案(均未完全生效):
- 配置文件排除:
yaml
spring:
autoconfigure:
exclude:
- com.yomahub.liteflow.springboot.LiteflowAutoConfiguration
- org.jeecg.modules.airag.config.AiragAutoConfiguration
liteflow:
enable: false
- 环境变量排除:
yaml
environment:
- SPRING_AUTOCONFIGURE_EXCLUDE=com.yomahub.liteflow.springboot.LiteflowAutoConfiguration,org.jeecg.modules.airag.config.AiragAutoConfiguration
- 从 pom.xml 移除 AI 模块:
bash
sed -i '/<module>jeecg-boot-module-airag<\/module>/d' jeecg-boot-module/pom.xml
但 jeecg-system-biz 中仍有对 AI 模块的硬编码依赖,导致编译失败。
最终解决方案:回退到 3.7.1,彻底避开 AI 模块。
3.6 ❌ 错误:openjdk:17-jdk-slim 镜像不可用
报错现象:
text
ERROR: failed to solve: openjdk:17-jdk-slim: failed to resolve source metadata for docker.io/library/openjdk:17-jdk-slim: 403 Forbidden
原因:openjdk:17-jdk-slim 官方镜像已停更,部分镜像加速器拒绝拉取。
解决方案:使用 eclipse-temurin:17-jdk 替代。
Dockerfile:
dockerfile
FROM eclipse-temurin:17-jdk
COPY jeecg-boot/jeecg-module-system/jeecg-system-start/target/*.jar app.jar
ENV TZ=Asia/Shanghai
ENTRYPOINT ["java","-jar","/app.jar"]
3.7 ❌ 错误:依赖找不到(3.7.1 编译)
报错现象:
text
Could not find artifact org.jeecgframework.boot3:jeecg-boot-common:jar:3.7.1
Could not find artifact org.jeecgframework.boot3:jeecg-boot-starter-chatgpt:jar:3.7.1
解决方案:添加 Jeecg 官方仓库到 ~/.m2/settings.xml:
xml
<repository>
<id>jeecg</id>
<url>https://maven.jeecg.org/nexus/content/repositories/jeecg</url>
</repository>
3.8 ❌ 错误:数据源 Bean 覆盖失败
报错现象:
text
The bean 'dataSource'... could not be registered. A bean with that name has already been defined... overriding is disabled.
解决方案:在配置文件中启用 Bean 覆盖:
yaml
spring:
main:
allow-bean-definition-overriding: true
3.9 ❌ 错误:Failed to determine a suitable driver class
报错现象:
text
Failed to determine a suitable driver class
原因:PostgreSQL 驱动未正确加载。
解决方案:
yaml
spring:
datasource:
dynamic:
datasource:
master:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://jeecg-boot-postgresql:5432/jeecg_boot
username: postgres
password: Postgres@2026
3.10 ❌ 错误:登录接口 401(Token失效)
报错现象:
json
{"success":false,"message":"Token失效,请重新登录!","code":401}
原因:Shiro 未放行 /sys/login 和验证码接口。
尝试的解决方案:
yaml
shiro:
filterChainDefinitionMap:
/sys/login: anon
/sys/logout: anon
/sys/randomImage/**: anon
/sys/getVerificationCode: anon
/sys/checkVerificationCode: anon
/swagger-ui.html: anon
/webjars/**: anon
/**: anon
验证码禁用:
yaml
jeecg:
security:
captcha:
enabled: false
最终结论:JeecgBoot 3.7.1 的 Shiro 配置在 application.yml 中未生效,多次尝试均失败。建议后续使用官方 Docker 镜像或切换方案。
四、若依(RuoYi-Vue)部署尝试
4.1 源码克隆与编译
bash
cd /data
git clone https://gitee.com/y_project/RuoYi-Vue.git
cd RuoYi-Vue
mvn clean package -Dmaven.test.skip=true
编译成功输出:
text
[INFO] Reactor Summary for ruoyi 3.9.2:
[INFO] ruoyi .............................................. SUCCESS [ 1.795 s]
[INFO] ruoyi-common ....................................... SUCCESS [ 38.378 s]
[INFO] ruoyi-system ....................................... SUCCESS [ 0.422 s]
[INFO] ruoyi-framework .................................... SUCCESS [ 5.688 s]
[INFO] ruoyi-quartz ....................................... SUCCESS [ 0.573 s]
[INFO] ruoyi-generator .................................... SUCCESS [ 1.231 s]
[INFO] ruoyi-admin ........................................ SUCCESS [ 6.465 s]
[INFO] BUILD SUCCESS
4.2 ❌ 错误:PostgreSQL SQL 转换失败
报错现象:
text
错误: 语法错误 在 "(" 或附近的
第2行 dept_id bigint(20) not null comment '部...
原因:若依 SQL 使用大量 MySQL 特有语法(bigint(20)、行内 comment、DEFAULT CHARSET 等),转换到 PostgreSQL 需要大量手工调整。
解决方案:使用 MySQL 容器快速启动若依。
4.3 使用 MySQL 容器启动若依
bash
# 1. 启动 MySQL 容器
docker run -d --name ruoyi-mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_DATABASE=ry-vue \
-p 3306:3306 \
mysql:5.7
# 2. 导入数据
docker exec -i ruoyi-mysql mysql -uroot -proot ry-vue < /data/RuoYi-Vue/sql/ry_20260417.sql
docker exec -i ruoyi-mysql mysql -uroot -proot ry-vue < /data/RuoYi-Vue/sql/quartz.sql
# 3. 修改数据源配置为 MySQL
cat > /data/RuoYi-Vue/ruoyi-admin/src/main/resources/application-druid.yml << 'EOF'
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
master:
url: jdbc:mysql://172.17.0.1:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: root
EOF
# 4. 重新打包并启动
cd /data/RuoYi-Vue
mvn clean package -Dmaven.test.skip=true
cd ruoyi-admin/target
nohup java -jar ruoyi-admin.jar > /data/logs/ruoyi-admin.log 2>&1 &
五、前端部署与 Nginx 配置
5.1 前端编译(以 JeecgBoot 为例)
bash
cd /data/JeecgBoot/jeecgboot-vue3
pnpm config set registry https://registry.npmmirror.com
pnpm install
pnpm run build
5.2 Nginx 配置
配置文件:/data/jeecgboot/frontend/nginx.conf
nginx
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ /index.html;
}
location /jeecgboot/ {
proxy_pass http://jeecg-boot-system:8080/jeecgboot/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
5.3 部署前端产物
bash
rm -rf /data/jeecgboot/frontend/dist/*
cp -r /data/JeecgBoot/jeecgboot-vue3/dist/* /data/jeecgboot/frontend/dist/
docker restart jeecg-boot-vue
六、Docker Compose 配置
6.1 完整 docker-compose.yml
yaml
version: '3.8'
services:
postgresql:
image: postgres:15.8
container_name: jeecg-boot-postgresql
restart: unless-stopped
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-Postgres@2026}
- POSTGRES_DB=jeecg_boot
- TZ=Asia/Shanghai
volumes:
- /data/jeecgboot/postgresql/data:/var/lib/postgresql/data
- /data/jeecgboot/postgresql/init:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7.2.5-alpine
container_name: jeecg-boot-redis
restart: unless-stopped
ports:
- "6379:6379"
command: redis-server --requirepass ${REDIS_PASSWORD:-Jeecg@2026} --appendonly yes
volumes:
- /data/jeecgboot/redis/data:/data
jeecg-system:
image: jeecgboot/jeecg-system:3.7.1
container_name: jeecg-boot-system
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /data/jeecgboot/backend/application-postgres.yml:/application.yml
- /data/jeecgboot/upload:/opt/upload
- /data/jeecgboot/logs:/opt/logs
environment:
- SPRING_PROFILES_ACTIVE=postgres
- SPRING_CONFIG_LOCATION=file:/application.yml
- TZ=Asia/Shanghai
- JAVA_OPTS=-Xms512m -Xmx1024m -XX:+UseG1GC
jeecg-vue:
image: nginx:1.25.5-alpine
container_name: jeecg-boot-vue
restart: unless-stopped
ports:
- "80:80"
volumes:
- /data/jeecgboot/frontend/dist:/usr/share/nginx/html
- /data/jeecgboot/frontend/nginx.conf:/etc/nginx/conf.d/default.conf
- /data/jeecgboot/upload:/usr/share/nginx/html/upload
6.2 ❌ 错误:端口冲突 bind: address already in use
报错现象:
text
Error starting userland proxy: listen tcp4 0.0.0.0:5432: bind: address already in use
原因:宿主机 PostgreSQL 服务占用了 5432 端口。
解决方案:
bash
systemctl stop postgresql
systemctl disable postgresql
6.3 ❌ 错误:Redis 健康检查失败
原因:Redis 设置了密码,健康检查命令未提供密码。
解决方案:删除 Redis 的 healthcheck 块,或在健康检查中添加密码:
yaml
test: ["CMD-SHELL", "redis-cli -a $REDIS_PASSWORD ping | grep PONG"]
七、数据库表结构(资产管理)
7.1 用户与权限基础表
sql
-- 用户表
CREATE TABLE sys_user (
id VARCHAR(32) PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
realname VARCHAR(50),
password VARCHAR(255) NOT NULL,
status INT DEFAULT 1,
create_time TIMESTAMP DEFAULT NOW()
);
-- 插入管理员(密码:123456 的 MD5 加密值)
INSERT INTO sys_user (id, username, realname, password, status)
VALUES ('1', 'admin', '管理员', 'e10adc3949ba59abbe56e057f20f883e', 1);
-- 角色表
CREATE TABLE sys_role (
id VARCHAR(32) PRIMARY KEY,
role_name VARCHAR(50) NOT NULL,
role_code VARCHAR(50) NOT NULL,
create_time TIMESTAMP DEFAULT NOW()
);
INSERT INTO sys_role (id, role_name, role_code) VALUES
('1', '超级管理员', 'admin'),
('2', '资产管理员', 'asset_admin');
-- 用户-角色关联表
CREATE TABLE sys_user_role (
id VARCHAR(32) PRIMARY KEY,
user_id VARCHAR(32) NOT NULL,
role_id VARCHAR(32) NOT NULL,
create_time TIMESTAMP DEFAULT NOW()
);
INSERT INTO sys_user_role (id, user_id, role_id) VALUES ('1', '1', '1');
7.2 资产管理核心业务表
sql
-- 资产分类表
CREATE TABLE asset_category_dict (
id VARCHAR(32) PRIMARY KEY,
code VARCHAR(20) UNIQUE NOT NULL,
name VARCHAR(100) NOT NULL,
level INT NOT NULL,
parent_code VARCHAR(20),
full_name VARCHAR(200),
sort_order INT DEFAULT 0
);
-- 资产状态表(五行状态)
CREATE TABLE asset_status (
id VARCHAR(32) PRIMARY KEY,
status_code VARCHAR(20) UNIQUE NOT NULL,
status_name VARCHAR(50) NOT NULL,
element VARCHAR(5) NOT NULL,
description TEXT,
sort_order INT DEFAULT 0
);
-- 资产主表
CREATE TABLE asset_items (
id VARCHAR(32) PRIMARY KEY,
asset_code VARCHAR(50) UNIQUE NOT NULL,
name VARCHAR(200) NOT NULL,
model VARCHAR(100),
brand VARCHAR(100),
serial_number VARCHAR(100),
purchase_date DATE,
purchase_price DECIMAL(12,2),
current_value DECIMAL(12,2),
quantity DECIMAL(12,2) DEFAULT 1,
status_code VARCHAR(20),
department_id VARCHAR(32),
location_id VARCHAR(32),
responsible_person VARCHAR(50),
user_person VARCHAR(50),
remark TEXT,
category_code VARCHAR(20),
created_time TIMESTAMP DEFAULT NOW(),
updated_time TIMESTAMP DEFAULT NOW()
);
-- 清查盘点表
CREATE TABLE inventory_checks (
id VARCHAR(32) PRIMARY KEY,
inventory_no VARCHAR(50) UNIQUE NOT NULL,
asset_category2 VARCHAR(50),
category_major VARCHAR(50),
category_minor VARCHAR(50),
department_name VARCHAR(100),
location_name VARCHAR(200),
brand VARCHAR(100),
model VARCHAR(100),
quantity DECIMAL(12,2),
production_date DATE,
photo TEXT,
remark TEXT,
check_person VARCHAR(50),
user_person VARCHAR(50),
check_date DATE DEFAULT CURRENT_DATE,
created_at TIMESTAMP DEFAULT NOW()
);
八、错误速查表
| 序号 | 错误现象 | 根本原因 | 解决方案 |
|---|---|---|---|
| 1 | docker-ce-cli-3:26.1.3-1.el8 找不到 |
版本前缀错误 | 使用 docker-ce-cli-1:26.1.3-1.el8 |
| 2 | Docker 拉取超时 | 网络问题 | 配置国内镜像加速器 |
| 3 | initdb: could not change permissions |
目录权限错误 | chown postgres:postgres /data/postgresql |
| 4 | PostgreSQL 无法启动,数据目录为空 | 软链接指向空目录 | 重新初始化数据库并创建软链接 |
| 5 | FlowExecutor Bean 找不到 |
AI 模块强耦合 | 回退到 3.7.1 版本 |
| 6 | openjdk:17-jdk-slim 403 |
镜像已停更 | 改用 eclipse-temurin:17-jdk |
| 7 | pnpm 版本不兼容 |
Node.js 版本过低 | 安装 pnpm@8 或升级 Node.js |
| 8 | Maven 使用 Java 8 | JAVA_HOME 未设置 | 设置 JAVA_HOME 指向 JDK 17 |
| 9 | Failed to determine a suitable driver class |
驱动未加载 | 正确配置 driver-class-name |
| 10 | 端口冲突 bind: address already in use |
宿主机服务占用端口 | 停止宿主机服务 |
| 11 | Redis 健康检查失败 | 密码验证失败 | 删除 healthcheck 或添加密码参数 |
| 12 | 登录接口 401 | Shiro 未放行 | 配置 shiro.filterChainDefinitionMap |
| 13 | PostgreSQL SQL 转换失败 | MySQL 特有语法 | 使用 MySQL 容器 |
九、最终状态总结
| 项目 | 状态 | 说明 |
|---|---|---|
| openEuler 24.03 | ✅ | 生产服务器 |
| Docker 26.1.3 | ✅ | 已安装并锁定版本 |
| 内核锁定 | ✅ | 已锁定 kernel* |
| PostgreSQL 15.8 | ✅ | 运行中,数据在 /data/postgresql |
| Redis 7.2.5 | ✅ | 运行中,端口 6379 |
| Nginx 1.25.5 | ✅ | 运行中,端口 80 |
| JeecgBoot 3.7.1 | ⚠️ | 后端启动成功但登录 401 |
| RuoYi-Vue 3.9.2 | ⚠️ | 编译成功,需 MySQL 容器 |
| PagePlug | ✅ | 可正常连接数据库 |
十、建议与后续
- 优先使用 PagePlug:无需复杂的 Shiro 配置,直接连接 PostgreSQL,可快速搭建资产管理应用。
- 若依使用 MySQL 容器:避免 PostgreSQL 转换问题,快速启动业务系统。
- JeecgBoot 等待官方镜像:3.8.x 的 AI 模块问题需要官方修复,3.7.1 的 Shiro 配置问题需进一步排查。
文档版本:v1.0
更新日期:2026-08-16
适用环境:openEuler 24.03 / Deepin 25 + Docker 26.1.3
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)