Fabric docker compose文件-peer

前提

cryptogen生成的文件放置在./crypto-config内。

configtxgen生成的文件放置在./channel-artifacts内。 

compose配置文件:

docker-compose-peerX-orgY.yaml

|-base/peer-base.yaml


peer-base

version: '2'
services:

peer-base:

#peer的镜像

image: hyperledger/fabric-peer

#变量
environment:

- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=artifacts_default

- CORE_LOGGING_LEVEL=DEBUG

- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_GOSSIP_USELEADERELECTION=true
- CORE_PEER_GOSSIP_ORGLEADER=false
- CORE_PEER_PROFILE_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt

#工作目录
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer

#默认执行命令
command: peer node start


docker-compose-peerX-orgY

#每个peer对应一个peerX.orgY.example.com

version: '2'

services:

#couchdb

couchdbX.orgY.example.com:

#容器名称

container_name: couchdbX.orgY.example.com

#fabric-couchdb镜像
image: hyperledger/fabric-couchdb

#挂载
volumes:

- ./chainData/couchdb/couchdbXorgY:/opt/couchdb/data

#peer

peerX.orgY.example.com:

#容器名称

container_name: peerX.orgY.example.com

#引用的服务

extends:

file: peer-base.yaml
service: peer-base

#变量

environment:

- CORE_PEER_ID=peerX.orgY.example.com
- CORE_PEER_ADDRESS=peerX.orgY.example.com:7051
- CORE_PEER_CHAINCODELISTENADDRESS=peerX.orgY.example.com:7052
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peerX.orgY.example.com:7051
- CORE_PEER_GOSSIP_BOOTSTRAP=peerX.orgY.example.com:7051
- CORE_PEER_LOCALMSPID=OrgYMSP

- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdbX.orgY.example.com:5984

#挂载

volumes:

- /var/run/:/host/var/run/
# 数据固化,将peer的数据映射到本地,防止丢失
- ./chainData/peer/peerXorgY:/var/hyperledger/production/
- ./crypto-config/peerOrganizations/orgY.example.com/peers/peerX.orgY.example.com/msp:/etc/hyperledger/fabric/msp
- ./crypto-config/peerOrganizations/orgY.example.com/peers/peerX.orgY.example.com/tls:/etc/hyperledger/fabric/tls

#映射端口的标签
ports:

- 7051:7051
- 7052:7052
- 7053:7053

#其他peer和所有orderer容器的主机名与IP

#例peer1.org2.example.com的配置

extra_hosts:

      #注意:这是以peer1.org2.example.com为例,本身的不需要设置

- "orderer1.example.com:10.0.200.111"
- "orderer2.example.com:10.0.200.113"
- "orderer3.example.com:10.0.200.114"
- "peer0.org1.example.com:10.0.200.113"
- "peer1.org1.example.com:10.0.200.114"
- "peer0.org2.example.com:10.0.200.115" 

#cli

examplecli:

#容器名称

container_name: examplecli

#cli的镜像
image: hyperledger/fabric-tools

#模拟一个伪终端
tty: true

#变量

environment:

      - CORE_PEER_CHAINCODELISTENADDRESS=peerX.orgY.example.com:7052

- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- CORE_LOGGING_LEVEL=DEBUG
- CORE_PEER_ID=examplecli
- CORE_PEER_ADDRESS=peerX.orgY.example.com:7051
- CORE_PEER_LOCALMSPID=OrgYMSP
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgY.example.com/peers/peerX.orgY.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgY.example.com/peers/peerX.orgY.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgY.example.com/peers/peerX.orgY.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/orgY.example.com/users/[email protected]/msp

#工作目录
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer

#挂载
volumes:

- /var/run/:/host/var/run/
- ./chaincode/go/:/opt/gopath/src/github.com/hyperledger/fabric/examples/chaincode/go
- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
- ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/peer/channel-artifacts

#依赖服务

depends_on:

peerX.orgY.example.com

#所有peer和orderer容器的主机名与IP
extra_hosts:

- "orderer1.example.com:10.0.200.111"
- "orderer2.example.com:10.0.200.113"
- "orderer3.example.com:10.0.200.114"
- "peer0.org1.example.com:10.0.200.113"
- "peer1.org1.example.com:10.0.200.114"
- "peer0.org2.example.com:10.0.200.115"
- "peer1.org2.example.com:10.0.200.116"



猜你喜欢

转载自blog.csdn.net/weixin_41926234/article/details/80624433