使用Caliper的Docker镜像
Caliper发布的Docker镜像hyperledger/caliper ,为使用所有 支持的适配器提供了单一的入口。该镜像基于node:10.16-alpine 镜像构建,从而尽可能保持镜像的小尺寸。
Caliper镜像的主要特性包括:
- 工作目录: /hyperledger/caliper/workspace
- 命令执行用户:node
- 环境变量CALIPER_WORKSPACE: /hyperledger/caliper/workspace
- 访问入口是全局安装的caliper程序
- 环境变量 CALIPER_BIND_ARGS 设置为-g,因此绑定步骤也是全局化的
- 默认的命令设置为--version,因此在使用镜像时必须指定命令
这包含以下隐含的意义:
- 推荐将本地工作目录挂接到容器的 /hyperledger/caliper/workspace 目录。 默认的CALIPER_WORKSPACE环境变量指向该目录。
- 需要选择一个执行的命令,要么启动主进程,要么启动工作进程。
- 绑定步骤还需要,这和采用NPM安装方式类似。无论你使用launch master 或launch worker命令,只需要设置指定的绑定参数。最简单的方法是使用 CALIPER_BIND_SUT环境变量。
- 需要为launch master或launch worker设置所需的参数。最简单的方式是利用 CALIPER_BENCHCONFIG和CALIPER_NETWORKCONFIG环境变量
启动容器
启动一个Caliper容器的步骤如下:
- 选择所需的镜像版本
- 将你的本地工作目录挂接到容器目录
- 设置所需的绑定和运行参数
具体命令如下:
user@hubwiz:~/caliper-benchmarks$ docker run \
-v $PWD:/hyperledger/caliper/workspace \
-e CALIPER_BIND_SUT=fabric:1.4.0 \
-e CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml \
-e CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml \
--name caliper hyperledger/caliper:0.2.0 launch master
使用docker-composer
上面的命令写成docker-compos.yaml文件会更容易理解:
```version: '2'
services: caliper: container_name: caliper image: hyperledger/caliper:0.2.0 command: launch master environment:
- CALIPER_BIND_SUT=fabric:1.4.0
- CALIPER_BENCHCONFIG=benchmarks/scenario/simple/config.yaml
- CALIPER_NETWORKCONFIG=networks/fabric/fabric-v1.4.1/2org1peergoleveldb/fabric-go.yaml
volumes:
- ~/caliper-benchmarks:/hyperledger/caliper/workspace
在包含上述docker-compose.yaml文件的目录启动:
docker-compose up ```