環(huán)境提前準(zhǔn)備
- vagrant 1.7.4 或以上
預(yù)備好golang/x/tools 庫(kù)
在執(zhí)行vagrant up
過(guò)程中,會(huì)執(zhí)行fabric/devenv
目錄下的setup.sh
腳本,其中有一項(xiàng)make clean gotools
,會(huì)去go get
golang/x/tools
下的一些庫(kù),這些庫(kù)無(wú)法下載奕纫,可使用github上的替換。
修改setup.sh
,在83行下增加
#down x/tools first
cat << EOF
down x/tools first
EOF
tools=$GOPATH'/src/github.com/golang/tools'
echo "tools path "$tools
if [ ! -d "$tools" ]
then
cd $GOPATH/src/github.com/golang
git clone https://github.com/golang/tools.git
else
echo "x/tools already exist"
fi
修改 fabric
目錄下Makefile叶骨,在175行下添加
-v /opt/gopath:/opt/gopath \
修改 fabric/gotools
目錄下的Makefile,在44行下方增加
gotool.goimports:
@echo "Building golang.org/x/tools/cmd/goimports -> goimports"
@GOPATH=$(abspath $(TMP_GOPATH)) go install golang.org/x/tools/cmd/goimports
在 $(GOBIN)/%:
下增加
@echo "copy x/tools resource"
@mkdir -p $(TMP_GOPATH)/src/golang.org/x
@cp -R $(GOPATH)/src/github.com/golang/tools $(TMP_GOPATH)/src/golang.org/x
下載fabric和fabric-ca
fabric 代碼托管在gerrit 上祈匙,登錄需要一個(gè)Linux Foundation ID忽刽。注冊(cè)地址 https://identity.linuxfoundation.org/
在我的windows上安裝好git,clone 代碼選擇clone with commit-msg hook夺欲,選擇ssh方式跪帝。其中LFD是Linux Foundation ID賬號(hào)。
git config --global core.autocrlf false
git clone ssh://LFID@gerrit.hyperledger.org:29418/fabric && scp -p -P 29418 shiyouRan@gerrit.hyperledger.org:hooks/commit-msg fabric/.git/hooks/
git clone ssh://LFID@gerrit.hyperledger.org:29418/fabric-ca && scp -p -P 29418 shiyouRan@gerrit.hyperledger.org:hooks/commit-msg fabric-ca/.git/hooks/
進(jìn)入到fabric/devenv
目錄 vagrant up
, 會(huì)顯示下載fabric的virtualbox.box些阅,下載速度非常慢伞剑,可事先用其它下載工具把該box下載下來(lái),下載地址就是上面顯示的地址市埋。
如果使用單獨(dú)下載的box黎泣,完成后添加box到本地 vagrant box add $box_path
,$box_path
是下載的virtualbox.box的路徑腰素, 同時(shí)需要設(shè)置環(huán)境變量USE_LOCAL_BASEIMAGE=1
聘裁。
vagrant up
再次啟動(dòng)。最后執(zhí)行成功弓千,在虛擬機(jī)環(huán)境沒(méi)有 /etc/motd
這個(gè)文件衡便。
配置docker環(huán)境
docker version
查看版本是1.13,需要配置docker的配置文件路徑:
vi /lib/systemd/system/docker.service
,在 [Service]
下增加
EnvironmentFile=/etc/default/docker
ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS
修改vi /etc/default/docker
镣陕,設(shè)置
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --api-cors-header='*'"
重啟docker
sudo systemctl daemon-reload
sudo systemctl restart docker
編譯
cd /opt/gopath/src/github.com/hyperledger/fabric
make all
cd /opt/gopath/src/github.com/hyperledger/fabric-ca
make all
如果中途下載基礎(chǔ)鏡像不成功谴餐,包括 hyperledger/fabric-baseimage
, hyperledger/fabric-baseos
呆抑,則把鏡像名和tag粘貼下來(lái)岂嗓,先直接docker pull
把他們下載下來(lái),再繼續(xù) make all
鹊碍。
成功之后會(huì)得到所有的鏡像
hyperledger/fabric-testenv-orderer
hyperledger/fabric-ca
hyperledger/fabric-couchdb
hyperledger/fabric-kafka
hyperledger/fabric-zookeeper
hyperledger/fabric-testenv
hyperledger/fabric-buildenv
hyperledger/fabric-orderer
hyperledger/fabric-peer
hyperledger/fabric-javaenv
hyperledger/fabric-ccenv
整個(gè)開(kāi)發(fā)環(huán)境就搭建好了厌殉。
附錄
參考 http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv.html