ERD Online私有化部署V2.0

本文详细指导如何在Linux主机上私有化部署ERDOnlineV2.0,包括官方部署步骤、本地虚拟机实践中的各种问题及解决方案,重点提及了Nacos连接错误和版本问题的处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ERD Online私有化部署V2.0

本文首发并存储于Notion个人博客:一枚风雨流苏

零,指南

0.1 相关链接

官网:https://www.erdonline.com/

官方文档:https://doc.erdonline.com/docs/quick-start/try-manual-install/

Gitee项目地址:https://gitee.com/MARTIN-88/erd-online

GitHub项目地址:https://github.com/www-zerocode-net-cn/ERD-Online

0.2 前置条件

  • 一台至少配置为 4核8G可联网 的Linux 主机。
  • 安装好 docker 环境
  • 安装好 docker-compose 工具
  • 安装好 git 工具

一,官方部署指南

root 用户登录 Linux 主机执行以下命令:

  • 任意目录新建一个空目录
mkdir erd && cd erd
  • 拉取安装代码
git clone https://gitee.com/MARTIN-88/erd-online.git .
cd docker
  • 修改ERD Online访问地址,比如 127.0.0.1:9669
vi env/ui.env

TIP:请确保设置的 IP 和 PORT是可用的,避免访问不到 ERD Online

  • 启动项目
docker-compose up -d

安装完毕后,通过 http://127.0.0.1:9669 即可访问 ERD Online 系统。

TIP

docker-compose 启动过程:

  • 拉取ERD Online相关镜像
  • 启动
  • 整个启动过程受自己机器的cpu、内存、网络影响,理论上这三个越大越快

二, 本地虚拟机部署实践

1.1 创建存放的空目录

[feng@Master ~]$ mkdir erd && cd erd
[feng@Master erd]$ pwd
/home/feng/erd

1.2 拉取仓库代码

这里需要root权限,再进行代码的拉取:

# 切换root权限
[feng@Master erd]$ su root
# 拉取仓库
[root@Master erd]# git clone https://gitee.com/MARTIN-88/erd-online.git .
# 查看文件情况
[root@Master erd]# ls

Untitled

1.3 设置私有化访问地址

[root@Master erd]# cd docker
[root@Master docker]# ls
docker-compose.yml  env  minio
[root@Master docker]# ls env/
erd.env  mysql.env  nacos-standlone-mysql.env  ui.env
[root@Master docker]# vim env/ui.env

Untitled

1.4 启动项目

在erd的docker目录下执行以下命令:

[root@Master docker]# docker-compose up -d

拉取过程中:

Untitled

Untitled

拉取结束:

Untitled

安装完成:

Untitled

1.4.1 未安装docker报错

如果系统没安装docker,会出现如下报错:

Untitled

所以需要安装docker,请参考:Docker安装详细教程

1.4.2 版本问题报错

安装好docker后,依然出现了如下的报错:

Untitled

上述的报错Error response from daemon: manifest for erdonline/erd-system:4.1.1 not found: manifest unknown: manifest unknown 指的是可能不存在这个版本或者没找到这个版本。

所以,我们查看一下/home/feng/erd/docker目录下的docker-compose.yml文件,打开发现里面的版本全是4.1.1,而ERD Online在GitHub和Gitee上的最新版本只不过是4.1.0,所以这里我们把该文件内容里的4.1.1全部更改为4.1.0然后用:wq保存即可。

Untitled

ERD Online在GitHub和Gitee上的最新版本是4.1.0:

Untitled

1.4.3 network erd报错

如果在拉取完成后,出现以下这个network erd declared as external, but could not be found报错:

Untitled

**解决方法:**使用docker network create erd创建一个名称为erd的网络即可:

Untitled

1.4.4 非root用户报错

文章开头就说了需要全文都需要root用户执行权限,如果非root或者使用sudo命令,就有可能遇到如下的报错:

Untitled

解决方法:输入su root切换成root用户。

1.5 最终完成私有化部署

完成上述部署操作之后,在浏览器输入1.3 设置私有化访问地址 中设置的地址http://127.0.0.1:9669即可访问ERD Online:

Untitled

注意,要使用Chrome浏览器(因为ERD Online是基于Chrome开发的),否则用Centos自带的FireFox可能出现页面布局混乱的问题:

Untitled

1.6 以后如何启动

以后二次启动可以采用以下方法:

# 首先启动docker
[feng@Master ~]$ sudo systemctl start docker
# 查看状态,确保docker已经启动
[feng@Master ~]$ sudo systemctl status docker
# 进入ERD安装目录的docker文件夹下
[feng@Master ~]$ cd /home/feng/erd/docker
# 启动ERD Online
[feng@Master ~]$ sudo docker-compose up -d

Untitled

三,部署后错误

3.1 Bugs新建项目无响应或者无法登录

虽然部署后能在浏览器看到对应的页面,但是发现了在新建项目时无响应的bug;在个人或者团队中新建项目,填写完项目信息并点击确定后无响应,与此同时,右上角的登录功能也无法使用。

Untitled

这时候采用docker-compose logs -f命令查看系统日志,发现有如下报错:

erd-auth      | >>>>>> [NACOS ConnectException httpGet] currentServerAddr:http://erd-nacos:8848, err : Connection refused (Connection refused)
erd-auth      | 2023-09-18 16:08:20.388 ERROR 10 --- [           main] at com.alibaba.nacos.client.config.impl.ClientWorker.getServerConfig (ClientWorker.java:303)

Untitled

[root@Master erd]# grep -r "spring.cloud.nacos" ./
Binary file ./docker/mysql/ib_logfile0 matches
Binary file ./docker/mysql/binlog.000001 matches
Binary file ./docker/mysql/nacos/config_info.ibd matches
[root@Master erd]# cat /home/feng/erd/docker/mysql/nacos//config_info.ibd

3.1.1 docker-compose.yml文件解读

配置了redis、mysql、nacos、zerocode、gateway、auth、system、ui、minio服务

# 版本
version: "3"
# 服务
services:
  erd-redis:
    image: erdonline/erd-redis:4.1.1
    restart: on-failure
    container_name: erd-redis
    volumes:
      - ./redis/data:/data:rw
    ports:
      - 6379:6379
    networks:
      - erd

  erd-mysql:
    container_name: erd-mysql
    restart: always
    image: erdonline/erd-mysql:4.1.1
    env_file:
      - ./env/mysql.env
    volumes:
      - ./mysql:/var/lib/mysql:rw
    ports:
      - "3306:3306"
    networks:
      - erd

  erd-nacos:
    image: erdonline/erd-nacos:4.1.1
    container_name: erd-nacos
    restart: always
    env_file:
      - ./env/nacos-standlone-mysql.env
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9555:9555"
    depends_on:
      - erd-mysql
    networks:
      - erd

  erd-zerocode:
    image: erdonline/erd-zerocode:4.1.1
    restart: on-failure
    env_file:
      - ./env/erd.env
    container_name: erd-zerocode
    environment:
      NACOS-HOST: erd-nacos
      JAVA_OPTS: " -Xms512m -Xmx512m "
    depends_on:
      - erd-nacos
    networks:
      - erd

  erd-gateway:
    image: erdonline/erd-gateway:4.1.1
    restart: on-failure
    env_file:
      - ./env/erd.env
    container_name: erd-gateway
    environment:
      NACOS-HOST: erd-nacos
      JAVA_OPTS: " -Xms512m -Xmx512m "
    ports:
      - 9502:9502
    depends_on:
      - erd-nacos
    networks:
      - erd

  erd-auth:
    image: erdonline/erd-auth:4.1.1
    restart: on-failure
    env_file:
      - ./env/erd.env
    container_name: erd-auth
    environment:
      NACOS-HOST: erd-nacos
      JAVA_OPTS: " -Xms512m -Xmx512m "
    depends_on:
      - erd-nacos
    networks:
      - erd

  erd-system:
    image: erdonline/erd-system:4.1.1
    restart: on-failure
    env_file:
      - ./env/erd.env
    container_name: erd-system
    environment:
      NACOS-HOST: erd-nacos
      JAVA_OPTS: " -Xms512m -Xmx512m "
    depends_on:
      - erd-nacos
    networks:
      - erd

  erd-ui:
    image: erdonline/erd-ui:4.1.1
    container_name: erd-ui
    restart: on-failure
    env_file:
      - ./env/ui.env
    ports:
      - "9669:9669"
    networks:
      - erd

  erd-minio:
    image: erdonline/erd-minio:4.1.1
    container_name: minio
    restart: always
    command: server /data --console-address ":9001"
    ports:
      - 9000:9000
      - 9001:9001
    environment:
      MINIO_ROOT_USER: minio
      MINIO_ROOT_PASSWORD: minio123
    volumes:
      - ./minio/data:/data
    networks:
      - erd

networks:
  erd:
    external: true

3.2 使用nacos-server镜像

Untitled

3.3 其他尝试

3.2.1 重新部署

在Datanode02节点尝试重新部署,发现部署完结果一样,还是出现nacos报错,网址打开点击登录或者新建项目后无响应。

3.2.2 部署旧版本

由于重新部署也不成功,而前面部署的都是最新版本4.1.0,所以这里尝试部署以前的版本能不能解决,因为前面的bugs可能是新版本才有的。然后在Datanode03节点尝试部署4.0.7版本的,这时候发现镜像拉取失败,虽然GitHub上有这个版本,但可能是因为docker镜像中没有,所以这里继续降低版本改为4.0.5,这时候就能像最新版本一样完成后续所有的部署操作啦。可惜,最后出来的结果还是跟最新版本的一样,在个人或者团队中新建项目,填写完项目信息并点击新建后响应失败,与此同时,右上角的登录功能也无法使用。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值