LoginSignup
1
1

More than 5 years have passed since last update.

HyperLedger Fabric1.1 ComposerをDocker内のUbuntu上に構築してみた

Last updated at Posted at 2018-06-21

概要

Docker内のUbuntuにHyperLedger Composer1.1の環境を構築しました。いわゆるDocker in docker環境です。
aufsのファイルシステムの相性があり、かなり苦戦したのでメモです。
ポイントはDockerへのaufsドライバーの導入と、/var/lib/docker/aufsの削除です。
これからはcomposerですね。composer-playgroundとか簡単すぎます。

Docker設定

Dockerにaufsのドライバーが必要なので、ここを参考に"storage-driver" : "aufs"を追加。https://blog.adachin.me/archives/8154
スクリーンショット 2018-06-26 15.17.29.png

※※※※※※※インスタンス とイメージが消えるのでsaveなどで必要であればバックアップしておくこと。
かなりのディスク容量を使うのでDockerのDISKサイズを100Gなどにリサイズしておく。Dockerのプロセスのアイコンからできます。
スクリーンショット 2018-06-26 15.18.42.png

Ubuntu環境インストール

  手順
     Ubuntu環境作成
      docker run --privileged=true -d --name hlc -p 10022:22 -p 8080:8080 -p 3000:3000 ubuntu:16.04 /sbin/init
      ログイン
        docker exec -it hlc  /bin/bash
      設定
        $ apt-get update
        $ apt-get install -y openssh-server vim unzip sudo curl software-properties-common
        $ passwd -> rootパスワードを設定する。rootなどに設定。
        $ vim /etc/ssh/sshd_config
        下記のように変更
          #PermitRootLogin prohibit-password
          PermitRootLogin yes
        $  /etc/init.d/ssh restart

HyperLedgerインストール

下記の手順はこのサイトを参考にしています。
   参考:https://qiita.com/kolinz/items/351e1d0accda5b0a723d

Docker環境インストール

        $ sudo apt-get remove docker docker-engine docker.io
        $ sudo apt-get update
        $ sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
        $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
        $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
        $ sudo apt-get update
        $ sudo apt-get -y install docker-ce
        $ sudo docker -v
        $ sudo usermod -aG docker $(whoami)

        ログアウトし、再ログインします。
        $ exit
        $ docker exec -it hlc  /bin/bash

Docker Composeを入れる


        $ cd
        $ sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
        $ sudo chmod +x /usr/local/bin/docker-compose

Node.jsを入れる


        $ sudo apt-get update -y && sudo apt-get upgrade -y
        $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
        $ sudo apt-get install -y nodejs gcc g++ make
        $ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
        $ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
        $ sudo apt-get update
        $ sudo apt-get install yarn

関連npmパッケージをインストール


        $ sudo npm install -g yo
        $ sudo npm install -g --unsafe-perm composer-cli@0.19.10 composer-rest-server@0.19.10 generator-hyperledger-composer@0.19.10 composer-playground@0.19.10

Hyperledger Composer 1.1を導入。composer-playgroundの起動まで。


        $ cd
        $ vim ~/.bashrc で以下を登録
        export FABRIC_VERSION=hlfv11
        export DOCKER_CLIENT_TIMEOUT=2000
        export COMPOSE_HTTP_TIMEOUT=2000
        export FABRIC_START_TIMEOUT=15
        $ source ~/.bashrc 
        $ sudo rm -rf /var/lib/docker/aufs ※
        $ sudo service docker restart ※
        $ mkdir fabric && cd fabric
        $ curl -O https://raw.githubusercontent.com/hyperledger/composer-tools/master/packages/fabric-dev-servers/fabric-dev-servers.tar.gz
        $ tar -xvf fabric-dev-servers.tar.gz
        $ vim ~/fabric/fabric-scripts/hlfv11/composer/docker-compose.yml  でひらいて
          peer0.org1.example.com:
            environment: 
          に下記を追加する。ビジネスネットワークカードをdeployするときにTimeoutになる対策。
            - CORE_CHAINCODE_STARTUPTIMEOUT=1200s
        $ ./downloadFabric.sh
        $ ./startFabric.sh
        $ ./createPeerAdminCard.sh
        $ composer-playground

      ※dockerが起動しないときは下記を実行。dockerdで詳細なエラーが表示される。参考:https://christina04.hatenablog.com/entry/2015/12/25/105242
          $ sudo rm -rf /var/lib/docker/aufs
          $ sudo service docker restart

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1