編譯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網絡了。

 

 

    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM