编译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/li技术图片nux-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镜像的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你编译Fabric源代码

Hyperledger Fabric(v1.1.0)编译时遇到的问题

docker如何制作自己的镜像

docker随笔:交叉编译工具链 docker镜像的制作

docker随笔:交叉编译工具链 docker镜像的制作

Native方式运行Fabric(非Docker方式)