Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away