当前位置: 首页 > news >正文

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,研究中

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 快速入门Vue
  • 系统架构设计师:系统架构设计
  • 深入理解Redis:缓存穿透、缓存击穿、缓存雪崩及双写一致性
  • 一些学习three的小记录
  • 顶刊算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测
  • 学习笔记-Golang中的Context
  • (算法)大数的进制转换
  • 【Webpack--000】了解Webpack
  • linux + 宝塔 + django + websocket 部署
  • 【C++前后缀分解】1888. 使二进制字符串字符交替的最少反转次数|2005
  • Docker部署Joplin Server教程
  • 嵌入式开发—CAN通信协议详解与应用(中)
  • Java 线程超时时间:作用于核心线程还是最大线程?
  • libyuv之linux编译
  • 【揭秘Java】线程安全中的有序性之谜
  • 深入了解以太坊
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • C++类的相互关联
  • canvas 五子棋游戏
  • ES6 ...操作符
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript函数式编程(一)
  • JavaScript设计模式与开发实践系列之策略模式
  • JAVA并发编程--1.基础概念
  • java取消线程实例
  • PermissionScope Swift4 兼容问题
  • 第十八天-企业应用架构模式-基本模式
  • 关于Android中设置闹钟的相对比较完善的解决方案
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 理清楚Vue的结构
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 时间复杂度与空间复杂度分析
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • #{} 和 ${}区别
  • #100天计划# 2013年9月29日
  • #Linux(make工具和makefile文件以及makefile语法)
  • #LLM入门|Prompt#3.3_存储_Memory
  • #pragma data_seg 共享数据区(转)
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (rabbitmq的高级特性)消息可靠性
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (分类)KNN算法- 参数调优
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (四)JPA - JQPL 实现增删改查
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (一一四)第九章编程练习
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • ::