hyperledger fabric1.0 vagrant 环境搭建过程记录

环境提前准备

  • vagrant 1.7.4 或以上

预备好golang/x/tools 库

在执行vagrant up过程中,会执行fabric/devenv目录下的setup.sh脚本,其中有一项make clean gotools,会去go get golang/x/tools下的一些库,这些库无法下载,可使用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 上,登录需要一个Linux Foundation ID。注册地址 https://identity.linuxfoundation.org/

在我的windows上安装好git,clone 代码选择clone with commit-msg hook,选择ssh方式。其中LFD是Linux Foundation ID账号。

git config --global core.autocrlf false
git clone ssh://[email protected]:29418/fabric && scp -p -P 29418 [email protected]:hooks/commit-msg fabric/.git/hooks/
git clone ssh://[email protected]:29418/fabric-ca && scp -p -P 29418 [email protected]:hooks/commit-msg fabric-ca/.git/hooks/

进入到fabric/devenv目录 vagrant up, 会显示下载fabric的virtualbox.box,下载速度非常慢,可事先用其它下载工具把该box下载下来,下载地址就是上面显示的地址。

如果使用单独下载的box,完成后添加box到本地 vagrant box add $box_path$box_path 是下载的virtualbox.box的路径, 同时需要设置环境变量USE_LOCAL_BASEIMAGE=1

vagrant up 再次启动。最后执行成功,在虚拟机环境没有 /etc/motd 这个文件。

配置docker环境

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,设置

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

如果中途下载基础镜像不成功,包括 hyperledger/fabric-baseimagehyperledger/fabric-baseos,则把镜像名和tag粘贴下来,先直接docker pull把他们下载下来,再继续 make all

成功之后会得到所有的镜像

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

整个开发环境就搭建好了。

附录

参考 http://hyperledger-fabric.readthedocs.io/en/latest/dev-setup/devenv.html

你可能感兴趣的:(hyperledger fabric1.0 vagrant 环境搭建过程记录)