如何在Hyperledger Fabric上运行trade.sh脚本,可否用docker-compose启动?
问题根因说明
你遇到的两个报错对应两个独立问题:
configtxlator: command not found:本地未安装Hyperledger Fabric二进制工具,或二进制文件所在路径未加入系统环境变量PATHhyperledger/fabric-tools:latest镜像不存在:Hyperledger Fabric官方从未提供latest标签的官方镜像,所有镜像必须指定明确的版本号才能拉取
完全可以改用docker-compose启动,具体操作步骤如下
- 首先确认你当前使用的trade-finance-logistics项目对应的Fabric版本,常见版本为v1.4.x、v2.2.x、v2.4.x,所有组件版本必须统一,避免兼容性问题
- 进入network目录,找到项目内置的docker-compose配置文件,一般命名为
docker-compose.yaml、docker-compose-net.yaml等 - 打开配置文件,将所有Fabric相关镜像的
latest标签替换为你确认的对应版本号,例如hyperledger/fabric-tools:latest改为hyperledger/fabric-tools:2.2.10,需修改的镜像包含fabric-tools、fabric-peer、fabric-orderer、fabric-ca、fabric-ccenv等 - 执行命令拉取所有镜像:
docker-compose pull - 执行命令后台启动网络:
docker-compose up -d - 执行
docker ps验证启动结果,若所有peer、orderer、ca容器均为Up状态则启动成功
注意:如果需要创建通道、部署链码,可直接调用容器内的peer二进制执行相关操作,不需要本地安装Fabric工具
原有trade.sh脚本修复方案(可选)
如果想继续使用原脚本启动,可按以下操作修复:
- 下载对应版本的Fabric二进制压缩包,解压后将bin目录的绝对路径加入环境变量:
export PATH=$PATH:<二进制包bin目录绝对路径>,可写入~/.bashrc实现永久生效 - 打开trade.sh脚本,找到定义镜像版本的变量,将默认的
latest替换为你使用的Fabric版本号即可
内容的提问来源于stack exchange,提问作者dashoon
相关产品推荐
相关产品推荐

