Edegex Foundry docker和源码安装
edgex文档下载
https://github.com/edgexfoundry/edgex-docs/branches/all
在线文档查看
首先要安装python3环境
然后后安装 打开超级终端
#pip3 install mkdocs
#mkdocs serve
在浏览器中输入 http://127.0.0.1:8000/edgex-docs/2.3/ 即可打开在线文档
edgex入门可以参考 https://blog.csdn.net/bxjie/article/details/113860800
1.docker安装
1.1 安装docker
#curl -fsSL https://get.docker.com -o get-docker.sh
#chmod 777 get-docker.sh
#sudo sh get-docker.sh
修改 docker 的镜像可以提高下载速度
vim /etc/docker/daemon.json
{
"registry-mirrors" : [
"http://registry.docker-cn.com"
],
"insecure-registries" : [
"registry.docker-cn.com"
]
}
systemctl restart docker
1.2 docker-compose 安装
docker-compose是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose ,您可以使用 YML 文件来配置应用程
序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务
https://github.com/docker/compose/releases 下载最新的版本 docker-compose-linux-x86_64
#mv docker-compose-linux-x86_64 /usr/sbin/docker-compose
#chmod 777 /usr/sbin/docker-compose
1.3 安装edgex
从 https://github.com/edgexfoundry/edgex-compose/下载需要安装的edgex版本 我这里下载2.3 版本
docker-compose -f docker-compose-no-secty.yml up -d
安装完成后 执行#docker ps 查看edgex哪些服务运行在docker中
docker 安装edgex 自动EdgeX GUI 管理界面
浏览器输入 http://localhost:4000/
2. 源码安装
golang 学习可以参考 https://www.bookstack.cn/read/golang_development_notes/zh-preface.md
2.1 搭建golang环境
下载最新版本的golang https://go.dev/dl/go1.23.1.linux-amd64.tar.gz
#tar go1.23.1.linux-amd64.tar.gz -C /opt
在/etc/profile
export GOROOT=/opt/go
export GOPATH=/opt/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
2.2 安装redis-server
edgex 默认是以redis 总线进行消息通信的
sudo apt install redis-server
2.3 安装 zeromq
有些服务需要zeromq进行通信
sudo apt-get install libzmq3-dev
也可以下载最新的源码编译安装
#./configure
#make -j4
# Build and install(root permission only)
#make install
2.4 安装consul
consul是注册服务用的,我将consul安装运行到docker中
创建 my_consul.yml 文件 文件内容如下
networks:
edgex-network:
driver: bridge
services:
consul:
command: agent -ui -bootstrap -server -client 0.0.0.0
container_name: edgex-core-consul
hostname: edgex-core-consul
image: consul:1.10.10
networks:
edgex-network: {}
ports:
- 127.0.0.1:8500:8500/tcp
read_only: true
restart: always
security_opt:
- no-new-privileges:true
user: root:root
volumes:
- consul-config:/consul/config:z
- consul-data:/consul/data:z
volumes:
consul-config: {}
consul-data: {}
执行下面命令 安装consul
docker-compose -f my_consul.yml up -d
查看容器内运行的consul
#docker ps
749f5d2c50f9 consul:1.10.10 "docker-entrypoint.s…" 15 minutes ago Up 12 minutes 8300-8302/tcp, 8301-8302/udp, 8600/tcp, 8600/udp, 127.0.0.1:8500->8500/tcp edgex-core-consul
2.5 下载编译及编译 edgex-go
下载2.3.0 版本https://github.com/edgexfoundry/edgex-go/archive/refs/tags/v2.3.0.tar.gz
#apt-get install cmake make
#apt-get install build-essential
#apt-get install pkg-config
#tar xfz edgex-go-2.3.0.tar.gz
#cd edgex-go-2.3.0
#make build //这个命令执行后 首先会执行 go mod tidy 下载依赖,过程可能很慢 建议更改代理export GOPROXY=https://goproxy.cn,direct
2.6 edgex-go运行
参考环境变量设置 https://blog.csdn.net/wwyyxx26/article/details/125479295
设置下面两个环境变量 已非安全模式下运行,安全模式有许多繁琐的配置
因为 主机名为localhost 可能会与 docker中的consul有冲突, 将源码中所有res/configuration.toml 文件中的
Host = "localhost"
ServerBindAddr = ""
更改为
Host = "192.168.3.185"
ServerBindAddr = "192.168.3.185"
其中192.168.3.185 是有线网卡的IP
创建启动脚本 startEdgex.sh
export GOROOT=/opt/go
export GOPATH=/opt/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct
export EDGEX_USE_REGISTRY=true
export EDGEX_SECURITY_SECRET_STORE=false
cd ./cmd/core-data
#./core-data &
go run main.go &
cd ../core-metadata
#./core-metadata &
go run main.go &
cd ../core-command
#./core-command &
go run main.go &
cd ../support-notifications
#./support-notifications &
go run main.go &
cd ../support-scheduler
#./support-scheduler &
go run main.go &
cd ../sys-mgmt-agent
#./sys-mgmt-agent &
go run main.go &
然后启动 chmod 777 startEdgex.sh
#./startEdgex.sh
也可以直接运行编程生成的二进制文件,取消上面的屏蔽
2.7 安装edgex-ui-go(可选)
2.7.1 docker安装 创建my-edgex-ui-go.yml
networks:
edgex-network:
driver: bridge
services:
ui:
container_name: edgex-ui-go
environment:
EDGEX_SECURITY_SECRET_STORE: "false"
hostname: edgex-ui-go
image: edgexfoundry/edgex-ui:2.2.0
networks:
edgex-network: {}
ports:
- 4000:4000/tcp
read_only: true
restart: always
security_opt:
- no-new-privileges:true
user: 2002:2001
#docker-compose -f my-edgex-ui-go.yml up -d
2.7.2 源码安装
https://github.com/edgexfoundry/edgex-ui-go/archive/refs/tags/v2.3.0.tar.gz
解压后执行下面语句
#make build
#cd bin && ./edgex-ui-go-launch.sh &
在浏览器中输入 127.0.0.1:4000 就可以看到控制面板,包含所有的服务 和规则引擎 第一次登陆需要token,研究中