You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Redhat 7.0离线部署Hyperledger Fabric:防火墙环境下获取二进制或源码构建咨询

我刚好处理过不少企业防火墙环境下的Hyperledger Fabric离线部署问题,针对你在RHEL 7.0上部署1.0.5版本的需求,给你整理了几个落地性强的方案,涵盖二进制文件获取、源码构建以及Docker镜像的离线迁移:

一、直接获取预编译的Hyperledger Fabric二进制文件

这是最省心的方式,不需要编译,步骤如下:

  • 在一台能联网的机器上,找到Hyperledger Fabric 1.0.5版本的预编译Linux二进制压缩包(对应amd64架构)
  • 把压缩包通过内部文件服务器、U盘等离线传输方式,拷贝到你的RHEL 7.0机器上
  • 解压到系统可执行路径,比如执行:
    tar -xzf fabric-linux-amd64-1.0.5.tar.gz -C /usr/local/bin/
    
  • 验证是否生效:执行peer version,如果能显示1.0.5版本信息,说明二进制文件已部署成功
二、从源码离线构建二进制文件

如果需要自定义代码或者无法获取预编译包,可以用这个方法,核心是先在联网机器上准备好所有依赖,再迁移到离线环境编译:

1. 联网机器准备依赖与源码

  • 安装Go 1.7.x版本注意:Fabric 1.0.5对Go版本有严格要求,必须用1.7系列,不能用更高版本),配置好GOPATH环境变量
  • 克隆指定版本的Fabric源码:
    git clone -b v1.0.5 https://github.com/hyperledger/fabric.git
    
  • 进入Fabric源码目录,下载所有依赖包:
    cd fabric
    go get -d ./...
    
  • 把整个GOPATH目录和Fabric源码目录打包成压缩包,传输到离线的RHEL 7.0机器

2. 离线机器编译构建

  • 在离线机器上安装和联网机器完全相同版本的Go,配置好GOPATH
  • 把打包的GOPATH内容覆盖到本地的GOPATH目录,确保依赖包都到位
  • 进入Fabric源码目录,执行构建命令:
    • 构建所有核心组件和工具:make all
    • 或者单独构建某个组件,比如peer:make peer,orderer:make orderer
  • 构建完成后,二进制文件会生成在fabric/build/bin/目录下,把这些文件复制到/usr/local/bin/即可
三、Docker镜像的离线迁移(解决Docker Hub访问受限问题)

因为你无法直接从Docker Hub拉取镜像,所以需要先在联网机器上拉取所需镜像,再导出、导入到离线环境:

1. 联网机器拉取并导出镜像

Fabric 1.0.5部署需要以下核心镜像,你可以逐个拉取:

docker pull hyperledger/fabric-peer:1.0.5
docker pull hyperledger/fabric-orderer:1.0.5
docker pull hyperledger/fabric-ccenv:1.0.5
docker pull hyperledger/fabric-ca:1.0.5
docker pull hyperledger/fabric-tools:1.0.5
docker pull hyperledger/fabric-baseos:0.3.1
  • 拉取完成后,把每个镜像导出为tar文件:
    docker save hyperledger/fabric-peer:1.0.5 > fabric-peer-1.0.5.tar
    # 其他镜像执行类似命令,比如orderer:
    docker save hyperledger/fabric-orderer:1.0.5 > fabric-orderer-1.0.5.tar
    
  • 把所有tar包打包成一个压缩包,传输到离线机器

2. 离线机器导入镜像

  • 逐个导入镜像文件:
    docker load < fabric-peer-1.0.5.tar
    docker load < fabric-orderer-1.0.5.tar
    # 其他镜像依次导入
    
  • 按照官方脚本的逻辑,给镜像添加默认tag(如果需要):
    docker tag hyperledger/fabric-peer:1.0.5 hyperledger/fabric-peer
    docker tag hyperledger/fabric-orderer:1.0.5 hyperledger/fabric-orderer
    # 其他镜像同理
    
四、离线部署的关键注意事项
  • 确保离线RHEL 7.0机器上的Docker版本符合要求:建议使用Docker 1.12.x或更高版本(避免兼容性问题)
  • 传输文件时,注意保持文件权限,比如二进制文件需要设置可执行权限:chmod +x /usr/local/bin/peer
  • 如果是源码构建,离线机器的Go版本必须和联网机器完全一致,否则会出现依赖编译失败的问题

内容的提问来源于stack exchange,提问作者Pandit

火山引擎 最新活动