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

  • 相关阅读:
    前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS进阶(二)
    操作系统概念 进程调度
    一行代码可以做什么?
    connection is being used##server is in use and cannot be deleted
    设计模式:访问者模式
    【自动驾驶】自动驾驶感知系统与关键技术介绍
    系统架构师备考倒计时16天(每日知识点)
    多线程(进阶)
    机器学习-4
    新学期,新FLAG | 从心出发
  • 原文地址:https://blog.csdn.net/du2005023029/article/details/142177613