This is an old revision of the document!
Fabric (NVM-Docker)
The Hyperledger Fabric Composer environment requires a few prerequisites, that are listed hereunder:
- Docker Engine: Version 1.12.x
- Docker-Compose: Version 1.8.x
- Node: 6.x (note version 7 is not supported)
- npm: 4.0.x
- git: 2.9.x
Starting from a Debian 8(.7.1) template, we'll try to configure a suited environment following Fabric Composer's site recommendations.
Having experienced weird “permission denied” installation errors using the root user, we'll try to proceed to installation as sysadmin when possible.
NVM (Node.js Version Manager)
Install NVM
> sudo apt-get install build-essential libssl-dev curl > curl -sL https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh -o install_nvm.sh > bash install_nvm.sh > export NVM_DIR="/home/sysadmin/.nvm" > [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
Install Node.js
> nvm ls-remote
...
v6.9.3 (LTS: Boron)
v6.9.4 (LTS: Boron)
v6.9.5 (LTS: Boron)
v6.10.0 (Latest LTS: Boron)
v7.0.0
...
Since Fabric Composer requires Node.js 6.x, and doesn't support 7, let's go for v6.10.0:
> nvm install 6.10.0 ######################################################################## 100.0% Computing checksum with sha256sum Checksums matched! Now using node v6.10.0 (npm v3.10.10) Creating default alias: default -> 6.10.0 (-> v6.10.0)
We are supposed to use npm 4.0.x, 3.10.10 was installed, let's upgrade it as explained on the npmjs.com website:
> npm show npm@* version ... npm@4.0.3 '4.0.3' npm@4.0.5 '4.0.5' npm@4.1.0 '4.1.0' ... > npm install -g npm@4.0.5
Docker
Docker Engine
From the Docker documentation:
Repository version
> sudo apt-get install apt-transport-https ca-certificates curl software-properties-common > curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - OK > sudo nano /etc/apt/sources.list.d/docker.list ADD deb https://apt.dockerproject.org/repo debian-jessie main > sudo apt-get update > apt-cache madison docker-engine ... docker-engine | 1.13.0-0~debian-jessie | https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages docker-engine | 1.12.6-0~debian-jessie | https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages docker-engine | 1.12.5-0~debian-jessie | https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages ... > sudo apt-get install docker-engine=1.12.6-0~debian-jessie
Complementary actions
Now, as we do not want to automatically upgrade the docker-engine package when using apt-get upgrade, we'll put the package on hold:
> sudo apt-mark hold docker-engine
To remove the hold:
> sudo apt-mark unhold docker-engine
Start and Autostart Docker:
> sudo systemctl start docker > sudo systemctl enable docker Synchronizing state for docker.service with sysvinit using update-rc.d... Executing /usr/sbin/update-rc.d docker defaults Executing /usr/sbin/update-rc.d docker enable
Docker status:
> systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled)
Active: active (running) since Fri 2017-03-17 02:03:28 CET; 11min ago
Docs: https://docs.docker.com
Main PID: 10340 (dockerd)
CGroup: /system.slice/docker.service
├─10340 /usr/bin/dockerd -H fd://
└─10344 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --shim docker-containerd-shim --metrics-interval=0 -...
Check Docker is functioning
> sudo docker run hello-world ... Hello from Docker! This message shows that your installation appears to be working correctly. ...
Docker Compose
From linuxable.com.
For a list of Docker-compose versions, see this GitHub page.
> su > curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose > chmod +x /usr/local/bin/docker-compose > docker-compose --version docker-compose version 1.8.1, build 878cff1 > exit
GIT
> sudo apt-get install git-core
Fabric Components
Command line tools
> npm install -g composer-cli
Clone and install the Sample Applications
> git clone https://github.com/fabric-composer/sample-applications.git > cd sample-applications/packages/getting-started > npm install