去安装无法生成二进制文件
这个问题有两个折叠:
1)去安装不能生成二进制
go version go1.7.3 linux/amd64 go env: GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/opt/gopath" GORACE="" GOROOT="/opt/go" GOTOOLDIR="/opt/go/pkg/tool/linux_amd64" CC="gcc" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build831334660=/tmp/go-build -gno-record-gcc-switches" CXX="g++" CGO_ENABLED="1"
程序来源: https://github.com/hyperledger/fabric
: https://github.com/hyperledger/fabric
工作目录: /opt/gopath/src/github.com/hyperledger/fabric
主要制作程序: /opt/gopath/src/github.com/hyperledger/fabric/peer/main.go
构build命令:
CGO_ENABLED=0 GOBIN=/opt/gopath/bin go install -x -ldflags " -X github.com/hyperledger/fabric/common/metadata.Version=1.0.0-snapshot-d6fbfcf -X github.com/hyperledger/fabric/common/metadata.BaseVersion=0.3.0 -X github.com/hyperledger/fabric/common/metadata.BaseDockerLabel=org.hyperledger.fabric -X github.com/hyperledger/fabric/common/metadata.DockerNamespace=hyperledger -X github.com/hyperledger/fabric/common/metadata.BaseDockerNamespace=hyperledger -linkmode external -extldflags -static -lpthread" github.com/hyperledger/fabric/peer
我期望在/opt/gopath/bin
创build二进制文件,但没有任何内容。
它在控制台上显示了一系列.a文件被构build并移动到/opt/gopath/pkg/linux_amd64/
最终程序停止,并且没有构build二进制文件。 无论CGO_ENABLED设置为0还是1,都是如此。
不知怎的,程序想到它已经完成,没有链接目标文件和构build二进制文件? 还有其他哪些debugging方法可以用来进一步研究?
2)“安装”命令是从Makefile中获取的
@$(DRUN) \ -v $(abspath build/docker/bin):/opt/gopath/bin \ -v $(abspath build/docker/$(TARGET)/pkg):/opt/gopath/pkg \ hyperledger/fabric-baseimage:$(BASE_DOCKER_TAG) \ go install -compiler gccgo -ldflags "$(DOCKER_GO_LDFLAGS)" $(pkgmap.$(@F)) where DRUN = docker run -i --rm $(DOCKER_RUN_FLAGS) \ -v $(abspath .):/opt/gopath/src/$(PKGNAME) \ -w /opt/gopath/src/$(PKGNAME)
'Go install'
命令在Docker容器中运行,该容器的启动方式与Makefile指定的相同。 唯一的区别是,我手动做了两个镜头,即启动docker容器+去安装。 如果我一次性使用Makefile来构build它,它就可以正常工作。
是否有任何catch /警告使用这个'docker run <image> go install <args>'
样式命令?
- Docker与golang-onbuild构成无法在代理之后下载
- 获取stream错误:streamID 1; 在容器中使用Golang中的GooglesearchAPI时的PROTOCOL_ERROR
- Docker抱怨ALL_PROXY环境variables“proxy:unknown scheme:http”
- 连接时Gorm + Docker错误
- 如何从构build后的API获取Docker镜像ID?
- Docker Golang API使用内存中的文件创build一个容器
- ssh使用golang中的交互式shell执行nsenter作为远程命令来debuggingdocker容器
- golang docker私人github存储库
- 提供的标志,但没有定义