gpt4 book ai didi

docker - 在 $GOROOT 或 $GOPATH 中找不到包 cid

转载 作者:IT王子 更新时间:2023-10-29 01:57:09 24 4
gpt4 key购买 nike

我正在尝试自定义 tuna-app 的 tuna-app 链码例子。我想用 cid打包在我的链代码中,以做出关于允许谁运行链代码的 ABAC 决策。当我尝试安装链代码时,出现以下错误:

Error: Error getting chaincode code chaincode: 
Error getting chaincode package bytes: Error obtaining dependencies for github.com/hyperledger/fabric/core/chaincode/lib/cid:
<go, [list -f {{ join .Deps "\n"}} github.com/hyperledger/fabric/core/chaincode/lib/cid]>: failed with error: "exit status 1"
cannot load package: package github.com/hyperledger/fabric/core/chaincode/lib/cid: cannot find package "github.com/hyperledger/fabric/core/chaincode/lib/cid" in any of:
/opt/go/src/github.com/hyperledger/fabric/core/chaincode/lib/cid (from $GOROOT)
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/lib/cid (from $GOPATH)

我使用 Docker 来运行 peer、orderer、ca 和 cli 容器。用于构建链码的 Docker 镜像是 hyperledger/fabric-ccenv。这个镜像是使用 Dockerfile 创建的;我发现的有趣的一行是:

ADD payload/goshim.tar.bz2 $GOPATH/src/

它将 tar.bz2 添加到 $GOPATH/src 文件夹中(我相信)。 .tar.bz2 文件包含链代码使用的所有 Go 包。我尝试插入 cid 包并创建一个包含该包的新 .tar.bz2 文件。然后我重建了图像。该图像现在包含 cid 包,但我仍然遇到相同的错误。

为什么还是不见包裹?

最佳答案

在 tuna-app 的 startFabric.sh 中,您使用以下命令启动 cli 容器:

docker-compose -f ./docker-compose.yml up -d cli

查看 compose yaml 文件中持久卷的挂载声明。您应该会看到类似这样的内容,因为 tuna-app 基于 fabric-samples 中的 fabcar:

./../chaincode/:/opt/gopath/src/github.com/

如果您看到此声明,请将本地计算机上的文件夹/hyperledger/fabric/core/chaincode/lib/cid 复制到您的链代码文件夹中。如果您使用的是最新版本的结构样本 (https://github.com/hyperledger/fabric-samples),您应该可以在 chaincode/abac 中找到它。

关于docker - 在 $GOROOT 或 $GOPATH 中找不到包 cid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49560104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com