2017年11月12日日曜日

Hyperledger Fabric v1.1.0-preview ソースからdockerイメージをビルドする。

Fabric  v1.1.0-previewをソースからdockerイメージをビルドする手順。

①FabricとFabric-caのソース一式をクローンする。

# git clone -b v1.1.0-preview https://github.com/hyperledger/fabric.git
# git clone -b v1.1.0-preview https://github.com/hyperledger/fabric-ca.git
# mkdir -p /opt/fabric/src/github.com/hyperledger/
# cp -rf fabric /opt/fabric/src/github.com/hyperledger
# cp -rf fabric-ca /opt/fabric/src/github.com/hyperledger

②環境変数を設定する。

# export GOPATH=/opt/fabric
# export GOHONE=/opt/fabric

③Fabricのdockerイメージを作成する。

# cd $GOHOME/src/github.com/hyperledger/fabric/
# make docker

以下のエラーが発生した。。。
・・・
+ wget -q http://www.apache.org/dist/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
The command '/bin/sh -c set -x     && cd /     && wget -q "http://www.apache.org/dist/zookeeper/$DISTRO_NAME/$DISTRO_NAME.tar.gz"     && tar -xzf "$DISTRO_NAME.tar.gz"     && mv "$DISTRO_NAME/conf/"* "$ZOO_CONF_DIR"     && rm -r "$DISTRO_NAME.tar.gz"' returned a non-zero code: 8
Makefile:205: recipe for target 'build/image/zookeeper/.dummy-x86_64-0.7.0-snapshot-c7b3fe0' failed

http://www.apache.org/dist/zookeeper にアクセスしてみると
zookeeper-3.4.9.tar.gzがなく、バージョンが3.4.10以降しかなかった。。。

とりあえず、3.4.10でダウンロードするようにDockerfileを修正する。

# vi build/image/zookeeper/Dockerfile
★以下を変更。
ARG DISTRO_NAME=zookeeper-3.4.10

# make docker
# docker images
REPOSITORY                     TAG                    IMAGE ID            CREATED              SIZE
hyperledger/fabric-tools       latest                 fdd9c70d1af3        27 seconds ago       1.42GB
hyperledger/fabric-tools       x86_64-1.1.0-preview   fdd9c70d1af3        27 seconds ago       1.42GB
hyperledger/fabric-couchdb     latest                 866f7fc6e93e        35 seconds ago       1.58GB
hyperledger/fabric-couchdb     x86_64-1.1.0-preview   866f7fc6e93e        35 seconds ago       1.58GB
hyperledger/fabric-kafka       latest                 e9f5f8d5f1d4        About a minute ago   1.37GB
hyperledger/fabric-kafka       x86_64-1.1.0-preview   e9f5f8d5f1d4        About a minute ago   1.37GB
hyperledger/fabric-zookeeper   latest                 f9fe6dffc638        2 minutes ago        1.39GB
hyperledger/fabric-zookeeper   x86_64-1.1.0-preview   f9fe6dffc638        2 minutes ago        1.39GB
<none>                         <none>                 d72c30ec06cb        3 minutes ago        1.33GB
hyperledger/fabric-testenv     latest                 6bf3e40d7f08        3 minutes ago        1.52GB
hyperledger/fabric-testenv     x86_64-1.1.0-preview   6bf3e40d7f08        3 minutes ago        1.52GB
hyperledger/fabric-buildenv    latest                 0824a7249f44        3 minutes ago        1.41GB
hyperledger/fabric-buildenv    x86_64-1.1.0-preview   0824a7249f44        3 minutes ago        1.41GB
hyperledger/fabric-orderer     latest                 76603b1f0f3e        4 minutes ago        159MB
hyperledger/fabric-orderer     x86_64-1.1.0-preview   76603b1f0f3e        4 minutes ago        159MB
hyperledger/fabric-peer        latest                 fcc5a0e8ea59        4 minutes ago        165MB
hyperledger/fabric-peer        x86_64-1.1.0-preview   fcc5a0e8ea59        4 minutes ago        165MB
hyperledger/fabric-javaenv     latest                 fb70e2629d32        4 minutes ago        1.49GB
hyperledger/fabric-javaenv     x86_64-1.1.0-preview   fb70e2629d32        4 minutes ago        1.49GB
hyperledger/fabric-ccenv       latest                 9203193f9935        5 minutes ago        1.35GB
hyperledger/fabric-ccenv       x86_64-1.1.0-preview   9203193f9935        5 minutes ago        1.35GB
hyperledger/fabric-baseimage   x86_64-0.4.2           76daf60aeff4        6 weeks ago          1.33GB
hyperledger/fabric-baseos      x86_64-0.4.2           6be1916d236d        6 weeks ago          130MB

➃Fabric-caのdockerイメージを作成する。

# cd $GOHOME/src/github.com/hyperledger/fabric-ca/
# make docker
# docker images | grep fabric-ca
hyperledger/fabric-ca-tools     latest                 6164429ffed0        2 hours ago         1.5GB
hyperledger/fabric-ca-tools     x86_64-1.1.0-preview   6164429ffed0        2 hours ago         1.5GB
hyperledger/fabric-ca-peer      latest                 13e583a4648b        2 hours ago         206MB
hyperledger/fabric-ca-peer      x86_64-1.1.0-preview   13e583a4648b        2 hours ago         206MB
hyperledger/fabric-ca-orderer   latest                 a88ff1f89153        2 hours ago         200MB
hyperledger/fabric-ca-orderer   x86_64-1.1.0-preview   a88ff1f89153        2 hours ago         200MB
hyperledger/fabric-ca           latest                 0a056a6cbdc1        2 hours ago         218MB
hyperledger/fabric-ca           x86_64-1.1.0-preview   0a056a6cbdc1        2 hours ago         218MB

<補足>
チェーンコードのコンテナ作成時に利用されるfabric-ccenvにおいて、shimのソースが解凍されていない問題が発生した。
fabric-ccenvコンテナを作成してログインし、確認してみてみる。

root@7c26bd340479:/opt/gopath# ls -l $GOPATH/src/
total 0
-rw-r--r-- 1 root root 0 Nov 12 14:36 goshim.tar.bz2

解凍されないまま、tar.bz2ファイルがある。
しかも、0バイトになっている。。。。

上記の事象が発生した場合は、make peerでコンパイルしてgoshim.tar.bz2を作成した後、所定の位置にコピーする。
その後、make docker-clean&make dockerを実行する。

# apt-get install libltdl-dev
# make peer
# cp build/goshim.tar.bz2 build/image/ccenv/payload/
# make docker-clean
# make docker

0 件のコメント: