ERD Online私有化部署V2.0
本文首发并存储于Notion个人博客:一枚风雨流苏
零,指南
0.1 相关链接
官方文档: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
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
1.4 启动项目
在erd的docker目录下执行以下命令:
[root@Master docker]# docker-compose up -d
拉取过程中:
拉取结束:
安装完成:
1.4.1 未安装docker报错
如果系统没安装docker,会出现如下报错:
所以需要安装docker,请参考:Docker安装详细教程
1.4.2 版本问题报错
安装好docker后,依然出现了如下的报错:
上述的报错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
保存即可。
ERD Online在GitHub和Gitee上的最新版本是4.1.0:
1.4.3 network erd报错
如果在拉取完成后,出现以下这个network erd declared as external, but could not be found
报错:
**解决方法:**使用docker network create erd
创建一个名称为erd的网络即可:
1.4.4 非root用户报错
文章开头就说了需要全文都需要root用户执行权限,如果非root或者使用sudo命令,就有可能遇到如下的报错:
解决方法:输入su root
切换成root用户。
1.5 最终完成私有化部署
完成上述部署操作之后,在浏览器输入1.3 设置私有化访问地址
中设置的地址http://127.0.0.1:9669
即可访问ERD Online:
注意,要使用Chrome浏览器(因为ERD Online是基于Chrome开发的),否则用Centos自带的FireFox可能出现页面布局混乱的问题:
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
三,部署后错误
3.1 Bugs新建项目无响应或者无法登录
虽然部署后能在浏览器看到对应的页面,但是发现了在新建项目时无响应的bug;在个人或者团队中新建项目,填写完项目信息并点击确定后无响应,与此同时,右上角的登录功能也无法使用。
这时候采用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)
[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镜像
3.3 其他尝试
3.2.1 重新部署
在Datanode02节点尝试重新部署,发现部署完结果一样,还是出现nacos报错,网址打开点击登录或者新建项目后无响应。
3.2.2 部署旧版本
由于重新部署也不成功,而前面部署的都是最新版本4.1.0,所以这里尝试部署以前的版本能不能解决,因为前面的bugs可能是新版本才有的。然后在Datanode03节点尝试部署4.0.7版本的,这时候发现镜像拉取失败,虽然GitHub上有这个版本,但可能是因为docker镜像中没有,所以这里继续降低版本改为4.0.5,这时候就能像最新版本一样完成后续所有的部署操作啦。可惜,最后出来的结果还是跟最新版本的一样,在个人或者团队中新建项目,填写完项目信息并点击新建后响应失败,与此同时,右上角的登录功能也无法使用。