编译fabric源码,并且制作docker镜像
Posted gyyyl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编译fabric源码,并且制作docker镜像相关的知识,希望对你有一定的参考价值。
1、下载好fabric源码:
git clone https://github.com/hyperledger/fabric.git
git checkout release-1.4
2、进入fabric目录
make release
在fabric/release/linux-amd64/bin目录下就会有编译好的二进制文件:
3、制作docker镜像
在fabric目录下面执行:
make docker
这时会docker会拉取一些必要的镜像,有的时候拉取很慢,甚至超时导致错误,所以在/etc/docker/目录下面创建文件daemon.json文件,内容为:
{ "registry-mirrors": ["http://hub-mirror.c.163.com"] }
//重启docker服务
sudo service docker restart
然后重新执行make docker:
3.1遇到的第一个错误:counterfeiter
解决方法:
mkdir -p $GOPATH/src/github.com/maxbrunsfeld cd $GOPATH/src/github.com/maxbrunsfeld git clone https://github.com/maxbrunsfeld/counterfeiter.git go install counterfeiter
此时可能又会出现can not find package "golang.org/x/mod/module"的问题
或者cannot find package "golang.org/x/xerrors"
解决方法:
mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/mod.git
git clone https://github.com/golang/xerrors.git
然后重新执行:
go install counterfeiter
3.2然后重新执行make docker,会安装chaintool,在之后又有可能会出现cannot stat ‘.build/docker/gotools/bin/protoc-gen-go‘:No such file or directory
解决方法:
在$GOPATH/src目录下
mkdir $GOPATH/src/golang cd $GOPATH/src/golang git clone https://git.oschina.net/mellymeng/protobuf.git cd protobuf make
此时可能出现的问题是cannot find package "github.com/golang/protobuf/...":
解决方法:
go get -v github.com/golang/protobuf/protoc-gen-go
然后将下载的二进制文件复制到.build/docker/gotools/bin:
cd $GOPATH/bin
cp protoc-gen-go ../src/github.com/hyperledger/fabric/.build/docker/gotools/bin
然后回到fabric目录,重新执行make docker
3.3docker中apt-get update失败:
Connection failed
解决方法:
修改/etc/docker/daemon.json文件,重新设置mtu和dns:
{ "dns":["your own dns","8.8.8.8"], "mtu",1400 } //ubuntu中查看自己dns的方式: nmcli device show | grep DNS
4、重新执行make docker
结果如下:
使用docker images查看制作的docker镜像:
然后就可以使用这些镜像来搭建fabric网络了。
以上是关于编译fabric源码,并且制作docker镜像的主要内容,如果未能解决你的问题,请参考以下文章