信创环境(openEuler 24.03 + Deepin 25)部署资产管理系统全记录

6 阅读11分钟

信创环境(openEuler 24.03 + Deepin 25)部署资产管理系统全记录

从零搭建:PagePlug / JeecgBoot / RuoYi 三套方案实战踩坑与解决方案

一、环境准备篇

1.1 硬件与系统信息

项目生产服务器开发环境
操作系统openEuler 24.03 LTS SP4Deepin 25
内核版本6.6.0-159.4.3.154.oe2403sp4.x86_64-
CPUXeon Gold 6210U-
内存4×32GB(128GB)-
Docker 版本26.1.326.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-ce3:

解决方案

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 直接 @AutowiredIAiragFlowService
  • 即使配置 liteflow.enable=false,Spring 仍会尝试注入 AI 模块的 Bean

尝试过的解决方案(均未完全生效)

  1. 配置文件排除
yaml

spring:
  autoconfigure:
    exclude:
      - com.yomahub.liteflow.springboot.LiteflowAutoConfiguration
      - org.jeecg.modules.airag.config.AiragAutoConfiguration
liteflow:
  enable: false
  1. 环境变量排除
yaml

environment:
  - SPRING_AUTOCONFIGURE_EXCLUDE=com.yomahub.liteflow.springboot.LiteflowAutoConfiguration,org.jeecg.modules.airag.config.AiragAutoConfiguration
  1. 从 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)、行内 commentDEFAULT 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()
);

八、错误速查表

序号错误现象根本原因解决方案
1docker-ce-cli-3:26.1.3-1.el8 找不到版本前缀错误使用 docker-ce-cli-1:26.1.3-1.el8
2Docker 拉取超时网络问题配置国内镜像加速器
3initdb: could not change permissions目录权限错误chown postgres:postgres /data/postgresql
4PostgreSQL 无法启动,数据目录为空软链接指向空目录重新初始化数据库并创建软链接
5FlowExecutor Bean 找不到AI 模块强耦合回退到 3.7.1 版本
6openjdk:17-jdk-slim 403镜像已停更改用 eclipse-temurin:17-jdk
7pnpm 版本不兼容Node.js 版本过低安装 pnpm@8 或升级 Node.js
8Maven 使用 Java 8JAVA_HOME 未设置设置 JAVA_HOME 指向 JDK 17
9Failed to determine a suitable driver class驱动未加载正确配置 driver-class-name
10端口冲突 bind: address already in use宿主机服务占用端口停止宿主机服务
11Redis 健康检查失败密码验证失败删除 healthcheck 或添加密码参数
12登录接口 401Shiro 未放行配置 shiro.filterChainDefinitionMap
13PostgreSQL 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可正常连接数据库

十、建议与后续

  1. 优先使用 PagePlug:无需复杂的 Shiro 配置,直接连接 PostgreSQL,可快速搭建资产管理应用。
  2. 若依使用 MySQL 容器:避免 PostgreSQL 转换问题,快速启动业务系统。
  3. JeecgBoot 等待官方镜像:3.8.x 的 AI 模块问题需要官方修复,3.7.1 的 Shiro 配置问题需进一步排查。

文档版本:v1.0 更新日期:2026-08-16 适用环境:openEuler 24.03 / Deepin 25 + Docker 26.1.3