当我构建hyperledger结构项目时,我有以下错误。但是我已经成功安装了goimports。为了找到原因,我单独运行./scripts/golinter.sh
,并且没有这样的错误。当我制作整个结构项目时,错误原因是什么。
LINT:运行代码检查..检查./accesscontrol ./scripts/golinter.sh:line 23:goimports:找不到命令 Makefile:148:目标' linter'失败了:*** [linter] 错误127
答案 0 :(得分:1)
直接运行./scripts/golinter.sh
时,您在本地系统上运行它,因此它会找到您本地安装的goimports
实用程序。
当您运行make
(或更具体地说,make linter
)时,golinter.sh
脚本会根据hyperledger/fabric-buildenv
图像在容器内运行。必定存在一些不匹配,因此我建议您删除标有hyperledger/fabric-buildenv
的所有图像痕迹并运行make buildenv
以创建新图像。更好的是make clean
后跟make
,因为还有其他图片构建在hyperledger/fabric-buildenv
之上。
答案 1 :(得分:1)
答案 2 :(得分:0)
在Makefile中
$query->bindParam(2, $x, PDO::PARAM_INT);
所以你可以找到你用来做这项工作的码头图像。 它应该是这样的:
linter: buildenv
@echo "LINT: Running code checks.."
#add this
@echo "$(DOCKER_TAG)"
@$(DRUN) $(DOCKER_NS)/fabric-buildenv:$(DOCKER_TAG) ./scripts/golinter.sh
你可以运行它:
hyperledger/fabric-buildenv x86_64-1.1.1-snapshot-cd36699 29266298cc73 3 minutes ago 1.43GB
将容器提交到容器外
docker run -it 29266298cc73
#install the cmd in it
$go get golang.org/x/tools/cmd/goimports
现在你可以再次运行make了,现在应该可以了。
无论如何,它是release1.1的错误
答案 3 :(得分:0)
在Mac上,我可以通过在路径($HOME/go/bin
)中加入~/.bashrc
来完成这项工作。似乎是在文档中打开的,我错过了一些
答案 4 :(得分:-1)
fabric/build/image/buildenv/payload
images/buildenv/Dockerfile.in
并向其添加COPY payload/goimports usr/local/bin/
。您可以阅读Makefile并了解背景信息。