嗨,我正在尝试将golang链代码安装在对等Docker容器中,并且我收到以下错误。该安装可以与nodeJs链代码一起正常工作。
volumes:
- ./msps/peer4.org1/msp:/etc/hyperledger/fabric/msp
- ../go-chaincode/dataCC:/opt/gopath/src/github.com/org1/dataCC
- ./peer4:/opt/gopath/src/github.com/hyperledger/fabric/peer/files
- peer4.org1.com:/var/hyperledger/production
go-chaincode / dataCC 目录中包含链码的go模块。
命令
peer lifecycle chaincode package $DATA_CHAINCODETAR_FILE --path $CORE_PEER_CHAINCODE_ID_PATH --lang golang --label datacc_1
日志
2020-08-08 02:54:16.263 UTC [bccsp] GetDefault -> DEBU 002 Before using BCCSP, please call InitFactories(). Falling back to bootBCCSP.
2020-08-08 02:54:16.270 UTC [main] InitCmd -> DEBU 003 peer lifecycle chaincode package does not need to init crypto
错误:
获取链码字节出错:'go list'失败:exec:“ go”:在$ PATH中找不到可执行文件
码头集装箱
/opt/gopath/src/github.com/hyperledger/fabric/peer # go list
sh: go: not found
感谢您的帮助。谢谢。
答案 0 :(得分:0)
我试图复制该问题,并能够成功安装和实例化chaincode。现在,这可能不是解决此问题的最佳方法,但它肯定对我有用。
根据容器的操作系统,使用命令docker exec -it container_name bash
(bash
/ sh
进入对等/ cli容器。
从here安装go二进制文件,然后按照所有安装说明进行操作。请按照所附链接中的示例,确保检查go
是否已安装。
运行mkdir -p /root/go/src
并将您的chaincode文件夹复制到该目录中。
安装/打包/实例化您的链码。
在安装/打包链码之前,请确保将环境变量CORE_PEER_MSPCONFIGPATH
设置为管理员的msp
目录。默认路径为CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/users/Admin@org1.example.com/msp
。
尝试这种方法,看看它是否对您有用。
每当我找到有用或更好的解决方案时,我都会更新此答案。