安装天覆云(私有部署单机版)常见问题汇总

📋 安装概述

1
安装docker --> 安装明道云 --> 修改明道云的环境变量(docker-compose.yaml)--> 安装天覆云

⚙️ 安装明道云

🔍 服务器内网IP配置

先 配置/获取 服务器内网ip地址如:192.168.1.147

👉 1 安装前需要先安装好docker,安装步骤可以参考安装docker

👉 2 安装明道云,安装步骤可以参考安装明道云

PS: 安装明道云管理器器统一放在 /home/skyinfor/mdy 目录下
如图所示:
alt text

👉 3 安装完成后申请明道云密钥,成功进入明道云(此步骤若安装失败,基本原因是 内存是否达到 >= 48G, 磁盘是否为SSD高IO),详请可参考明道云安装FAQs安装失败原因

👉 4 配置明道云的环境变量(docker-compose.yaml),详请可参考配置环境变量

👉 5 /data/skyinfor/script/docker-compose.yaml 配置如下

🔧 必填配置

  • 限制mongodb的缓存大小为10G,否则长时间运行会导致内存占用过高,系统内存不足,服务启动失败
    需要手动添加 ENV_MONGODB_CACHEGB: 10

  • ENV_ADDRESS_MAIN: 此处填写浏览器最终要访问的ip地址,如:192.168.1.147:80 代表天覆云的访问地址,必须填写,否则无法访问天覆云

  • 安装天覆云有二开页面必填(如果没有二开页面的话,直接删掉即可,如果仅访问明道云自带的默认页面,也可以不填写)
    ENV_WEB_ENDPOINTS: 192.168.1.147:10800 代表明道云二开页面服务

如图所示:
alt text

⚠️ 注意:sc服务下的 27017映射出来,否则天覆云无法连接到 Mongodb数据库,此处强烈建议开鉴权
MongoDB 数据库的开启密码教程可以参考开启密码


📦 安装天覆云

👉 1 上传 script.zip 压缩包

👉 2 解压 script.zip 压缩包 到 /data/skyinfor/ 目录下

1
unzip script.zip -d /data/skyinfor/

👉 3 登录docker仓库

1
docker login --username=用户名 registry.cn-hangzhou.aliyuncs.com

👉 4 进入 /data/skyinfor/script 目录,执行安装命令

1
2
3
4
5
cd /data/skyinfor/script

# 运行天覆云镜像拉起,没有会自动去镜像仓库拉取,离线环境需要手动上传 load 至服务器下
docker-compose up -d

🔌 离线安装说明

上传 xxx.tar.gz 4个镜像压缩包 到 /data/skyinfor/script

1
2
3
4
5
6
7
docker load -i /data/skyinfor/script/xxx.tar.gz 

# 四个镜像
registry.cn-hangzhou.aliyuncs.com/tfy_docker/tfy.cockpit:v5.0.0
registry.cn-hangzhou.aliyuncs.com/tfy_docker/tfy.web:v5.6.1
registry.cn-hangzhou.aliyuncs.com/tfy_docker/tfy.proxy:latest
registry.cn-hangzhou.aliyuncs.com/tfy_docker/tfy.private:v5.0.1

🚀 启动API服务

1
2
3
4
5
docker exec -it tfyPrivate bash

cd /home

sh run.sh

🔄 设置开机自启动天覆云服务

📝 启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
cat > /data/start_services.sh <<'EOF'
#!/bin/bash
sleep 10

cd /data/skyinfor/script
docker-compose down
docker-compose up -d

sleep 5

cd /home/skyinfor/mdy
bash service.sh restartall
EOF

chmod +x /data/start_services.sh

# 启动天覆云API服务脚本(7.x版本不需要此脚本)
cat > /data/tfy_run.sh <<EOF
#!/bin/bash

# 等待 Docker 完全就绪
sleep 10

# 判断 tfyPrivate 容器是否正在运行
if docker ps --format "{{.Names}}" | grep -qw tfyPrivate; then
echo "容器 tfyPrivate 运行中,执行 run.sh"
# 后台执行,不要加 -it
docker exec tfyPrivate bash -c "cd /home && sh run.sh"
else
echo "容器 tfyPrivate 未启动,跳过执行"
fi
EOF

chmod +x /data/tfy_run.sh

🔧 System管理服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
cat > /etc/systemd/system/skyinfor.service <<'EOF'
[Unit]
Description=Skyinfor Auto Start Services
After=network-online.target docker.service

[Service]
Type=oneshot
ExecStart=/data/start_services.sh
User=root
WorkingDirectory=/root

[Install]
WantedBy=multi-user.target
EOF

# 启动天覆云API服务(7.x版本不需要此服务)
cat > /etc/systemd/system/tfy-run.service <<EOF
[Unit]
Description=Auto run tfyPrivate run.sh after docker start
After=docker.service
Wants=docker.service

[Service]
Type=oneshot
ExecStart=/data/tfy_run.sh
User=root

[Install]
WantedBy=multi-user.target
EOF
启动服务
1
2
3
4
systemctl daemon-reload
systemctl enable skyinfor
# 启动天覆云API服务(7.x版本不需要此服务)
systemctl enable tfy-run.service

💡 天覆云服务无法启动问题汇总

一、无法启动问题
1、优先启动天覆云,然后启动明道云,防止 docker 容器之间ip 冲突, 明道云默认容器ip不固定。
2、docker 网桥问题,查看 script_default 网桥是否存在,不存在则手动创建,默认天覆云docker-compose会自动创建
3、检查是否容器ip地址冲突

如果不存在,则手动创建,命令如下:

1
docker network create --driver bridge --subnet 172.18.0.0/24 script_default

然后启动天覆云

3、端口占用,检查 /data/skyinfor/script/docker-compose.yaml 文件内宿主机映射的端口是否冲突,被占用,若冲突则需要修改为未被占用的端口
4、检查天覆云镜像是否都正确加载,docker images 查看是否都存在
5、检查天覆云容器是否都启动成功,docker ps 查看是否都存在,如果有失败的容器,需要查看日志,定位问题

二、天覆云启动成功后 API服务无法访问

1、检查天覆云api容器服务是否启动成功,docker ps 查看tfyPrivate容器是否启动成功,若失败,则查看日志,定位问题
2、容器成功启动却无法访问 API服务,检查容器日志,查看是否有异常,若没有异常,则检查防火墙是否开启

1
docker exec -it tfyPrivate bash

查看mysql是否正常启动,若没有启动,需要手动启动mysql,命令可在 /home/run.sh 查看

1
ps -ef | grep mysql

正确启动如图所示:
alt text

如果手动启动依旧失败,查看 /data/mysql/mysql.pid 文件是否存在,如果不存在,手动退出容器创建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
exit 退出容器

cd /data/skyinfor/script/tfyPrivate/data/mysql
touch mysql.pid

# 写入mysql进程id
echo "120" > mysql.pid

# 给 mysql.pid 文件添加可执行权限
chmod 777 mysql.pid

# 重启容器
docker restart tfyPrivate

# 进入容器
docker exec -it tfyPrivate bash

cd /home

# 执行 run.sh 脚本
sh run.sh

ps -ef | grep mysql
ps -ef | grep redis
ps -ef | grep nginx

服务是否正确启动,一般情况下基本都启动成功

3️⃣ 天覆云 tfyPrivate 容器内mysql服务一直启动失败(mysql.pid 手动创建依旧无法启动)


🔧 单独部署天覆云 mysql 服务

1
2
3
4
5
6
7
8
9
10
docker load -i /data/skyinfor/script/mysql5.7/mysql_5.7.44-img.tar.gz

docker run -d --restart=always --name="db" -e MYSQL_ROOT_PASSWORD=密码 -v /data/skyinfor/script/tfyPrivate/data/mysql:/var/lib/mysql -p 3307:3306 mysql:5.7.44

修改 tfyPrivate 容器内的 mysql加载环境变量
vi /data/wwwroot/127.0.0.2/tfy_api/.env
将 [DATABASE] 下的 HOSTNAME 改为 服务器内网ip如:192.168.1.147
将 [DATABASE] 下的 HOSTPORT 改为 3307
将 [DATABASE] 下的 PASSWORD 改为 你设置的密码


天覆云API启动成功测试

1
2
3
4
5
6
# 测试天覆云 API 服务是否正常 (宿主机测试,如果访问地址带 其他非80端口,如 81 端口请在ip后面加上端口,如:http://192.168.1.147:81/v1/api/webapi/init)

curl -X POST http://192.168.1.147/v1/api/webapi/init ter -H "Content-Type: application/json" -d '{"username":"system"}'

返回json 如下所示:
{"code":1,"msg":"success","data":{"id":1,"key":"success","local_url":"http://192.168.1.147"}}

天覆云启动后,再到 /home/skyinfor/mdy 下启动明道云

1
2
cd /home/skyinfor/mdy
bash service.sh startall

等待5-10分钟即可通过 http://192.168.1.147:80 访问


4️⃣ 访问天覆云,大屏中心没有数据

👉 1 检查mongodb服务端口是否开启,端口: 27017 ,⚠️ 请严格控制端口号/安全组设置,27017端口不要对公网开放

1
cat /data/mingdao/script/docker-compose.yaml

alt text

👉 2 没有导入 “数据库” 应用

👉 3 导入应用后需要手动添加 “应用key” + “平台总标识” 的数据,同时还需要手动添加 驾驶舱数据
alt text

👉 4 检查新增 应用key 流程是否成功, 如果没有显示成功需要查看工作流配置的 “发送自定义请求” 节点的API地址是否正确配置,正常ip填写 “http://172.18.0.5“ 即可,后面路由地址默认不变
alt text
alt text

-------------本文结束感谢您的阅读-------------
0%