概要
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
※※※※※※※インスタンス とイメージが消えるのでsaveなどで必要であればバックアップしておくこと。
かなりのディスク容量を使うのでDockerのDISKサイズを100Gなどにリサイズしておく。Dockerのプロセスのアイコンからできます。
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