当前位置: 首页 > 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,研究中

相关文章:

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入门可以参考…...

阿里P8和P9级别有何要求

阿里巴巴的P8和P9级别,代表着公司的资深技术专家或管理者岗位,要求候选人具有丰富的职业经历、深厚的技术能力以及出色的领导力。以下是对P8和P9级别的要求、考察点以及准备建议的详细分析。 P8 级别要求 1. 职业经历: 8年以上的工作经验&a…...

【目标检测数据集】锯子数据集1107张VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1107 标注数量(xml文件个数):1107 标注数量(txt文件个数):1107 标注…...

移动产业处理器接口(MIPI)协议是什么?

未来汽车的宏伟愿景备受瞩目,特别是驱动这些汽车的技术更是成为焦点。如今,传感器对于汽车视觉和安全技术的下一阶段至关重要,因为驾驶员和乘客都依赖于它们。这些传感器能够支持众多应用,这些应用往往基于人工智能(AI…...

OpenAI o1:隐含在训练与推理间的动态泛化与流形分布

随着OpenAI o1发布,进一步激发了产业与学术各界对AGI的期待以及new scaling law下的探索热情,也看到来自社区和专业机构对o1的阐释,但总感觉还差点什么,因此决定以自己的角度分篇幅梳理下,并分享给大伙: O…...

沉浸式体验和评测Meta最新超级大语言模型405B

2024年7月23日, 亚马逊云科技的AI模型托管平台Amazon Bedrock正式上线了Meta推出的超级参数量大语言模型 - Llama 3.1模型,小李哥也迫不及待去体验和试用了该模型,那这么多参数量的AI模型究竟强在哪里呢?Llama 3.1模型是Meta&…...

Python 课程10-单元测试

前言 在现代软件开发中,单元测试 已成为一种必不可少的实践。通过测试,我们可以确保每个功能模块在开发和修改过程中按预期工作,从而减少软件缺陷,提高代码质量。而测试驱动开发(TDD) 则进一步将测试作为开…...

【嵌入式硬件开发基础】Arduino板常用外设及应用:MPU6050空间运动传感器(简介,类库函数,卡尔曼滤波),继电器(原理介绍,含应用实例/代码)

当一个人不能拥有的时候,他唯一能做的便是不要忘记。 🎯作者主页: 追光者♂🔥 🌸个人简介: 📝[1] CSDN 博客专家📝 🏆[2] 人工智能领域优质创作者🏆 🌟[3] 2022年度博客之星人工智能领域TOP4🌟 🌿[4] 2023年城市之星领跑者TOP1(哈尔滨…...

Pandas Series对象创建,属性,索引及运算详解

目录 Series对象创建 实例化参数 index参数 选用array-like创建Series对象 list ndarray 显示索引与隐式索引 选用dict创建Series对象 不指定索引 指定索引 选用标量创建Series对象 使用标量创建的广播机制 Series属性 name size shape index values Series索…...

优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序

遗传算法(Genetic Algorithm, GA)是一种启发式搜索算法,用于寻找复杂优化问题的近似解。它模拟了自然选择和遗传学中的进化过程,主要用于解决那些传统算法难以处理的问题。 遗传算法的基本步骤: 初始化种群&#xff0…...

高等数学 2.3 高阶导数

一般地,函数 y f ( x ) y f(x) yf(x) 的导数 y ′ f ′ ( x ) y\ f\ (x) y ′f ′(x) 仍然是 x x x 的函数。我们把 y ′ f ′ ( x ) y\ f\ (x) y ′f ′(x) 的导数叫做函数 y f ( x ) y f(x) yf(x) 的二阶导数,记作 y ′ ′ y\ y ′…...

app抓包 chrome://inspect/#devices

一、前言: 1.首先不支持flutter框架,可支持ionic、taro 2.初次需要翻墙 3.app为debug包,非release 二、具体步骤 1.谷歌浏览器地址:chrome://inspect/#devices qq浏览器地址:qqbrowser://inspect/#devi…...

SAP自动化-ME12批量更新某行价格

Python源码 #-Begin-----------------------------------------------------------------#-Includes-------------------------------------------------------------- import sys, win32com.client import os#-Sub Main----------------------------------------------------…...

数据库系统 第58节 概述源码示例

深入探讨数据库技术,我们将通过具体的源代码示例来进一步解释数据库分区、复制、集群和镜像等高级特性。 数据库分区的源代码示例 哈希分区 在PostgreSQL中,可以使用哈希分区来创建一个分区表: CREATE TABLE measurements (city_id …...

软件设计师——程序设计语言

目录 低级语言和高级语言 编译程序和解释程序 正规式,词法分析的一个工具 有限自动机 ​编辑 上下文无关法 ​编辑 中后缀表示法 杂题 ​编辑 低级语言和高级语言 编译程序和解释程序 计算机只能理解由0、1序列构成的机器语言,因此高级程序设计…...

【在Linux世界中追寻伟大的One Piece】五种IO模型和阻塞IO

目录 1 -> 五种IO模型 1.1 -> 阻塞IO(Blocking IO) 1.2 -> 非阻塞IO(Non-blocking IO) 1.3 -> 信号驱动IO(Signal-Driven IO) 1.4 -> IO多路转接(IO Multiplexing) 1.5 -> 异步IO(Asynchronous IO) 2 -> 高级IO概念 2.1 -> 同步通信VS异步通信…...

nginx实现权重机制(nginx基础配置二)

在上一篇文章中我们已经完成了对轮询机制的测试,详情请看轮询机制。 接下来我们进行权重机制的测试 一、conf配置 upstream backServer{ server 127.0.0.1:8080 weight2; server 127.0.0.1:8081 weight1; } server { listen 80; server_name upstream.boyatop.cn…...

华为的仓颉和ArkTS这两门语言有什么区别

先贴下官网: ArkTs官网 仓颉官网 ArkTS的官网介绍说,ArkTS是TypeScript的进一步强化版本,简单来说就是包含了TS的风格,但是做了一些改进。 了解TypeScript的朋友都应该知道,其实TypeScript就是JavaScript的改进版本&…...

(SERIES10)DM逻辑备份还原

1 概念 逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻…...

Java零基础-StringBuilder类详解

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发,其初衷是为了满足他自己的一个项目需求,即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源,Redis凭借其简单易用、…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解,现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...