1 .问题背景
我在Ubuntu 系统搭建区块链服务器 执行链码安装在搭建的过程中出现了问题,被卡住了,不知道怎么解决,希望可以得到大家的帮助!

2 .问题的形成与尝试解决的方案

我执行下面这个指令的时候出现了这个go.mod file not found 这个问题

docker exec cli peer chaincode install -n mychaincode -v 1.0.0 -l golang -p github.com/chaincode/perishable-food
Error: error getting chaincode deployment spec for mychaincode: 'go list' failed with: no required module provides package github.com/chaincode/perishable-food: go.mod file not found in current directory or any parent directory; see 'go help modules': exit status 1

执行go env 看看GO111MODULE是不是没有设置为auto
输出的内容如下,已经设置过auto了

go env

得到如下结果 go 的版本是1.18.2

GO111MODULE="auto"
GOARCH="amd64"
GOBIN="/usr/local/go/bin"
GOCACHE="/home/ubuntu/.cache/go-build"
GOENV="/home/ubuntu/.config/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/opt/gopath/pkg/mod"
GONOPROXY="*.corp.example.com"
GONOSUMDB="*.corp.example.com"
GOOS="linux"
GOPATH="/opt/gopath"
GOPRIVATE="*.corp.example.com"
GOPROXY="https://goproxy.io,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.18.2"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/opt/gopath/src/gdzce.cn/perishable-food/deploy/go.mod"
GOWORK=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build102628053=/tmp/go-build -gno-record-gcc-switch

然后我看了看项目列表 存在go.mod 这个文件,并执行go mod tidy 后没有出现报错的现象
这个是项目的列表

img

img

也试过改为 off 但是又遇到了其他问题,不能修改 off

GO111MODULE="off"

但是执行go mod init go mod tidy 时,没有出现问题

go mod init
go mod tidy

然后我尝试执行 go mod download 后发现没有报错

go mod download

img

然后我再次执行这个指令的时候发现,依旧是这个问题,就很神奇。

docker exec cli peer chaincode install -n mychaincode -v 1.0.0 -l golang -p github.com/chaincode/perishable-food
Error: error getting chaincode deployment spec for mychaincode: 'go list' failed with: no required module provides package github.com/chaincode/perishable-food: go.mod file not found in current directory or any parent directory; see 'go help modules': exit status 1