version: '2'

services:

## To enable CouchDB as state database, uncomment the following sections of this file:
## 1) couchdb containers
## 2) peer environment variables CORE_LEDGER_STATE_STATEDATABASE and
##    CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS
## 3) couch container names in "depends_on" section

  couchdb3:
    container_name: couchdb3
    image: hyperledger/fabric-couchdb
#   Uncomment the port mapping if you want to expose the CouchDB service,
#   for example to utilize Fauxton User Interface in dev environments.
    volumes:
      - /var/hyperledger/couchdb3:/opt/couchdb/data
    ports:
      - "5984:5984"

  peer3:
    container_name: peer3
    extends:
      file: peer-base/peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer3
      - CORE_PEER_ADDRESS=peer3:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer3:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=peer0:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/msp/sampleconfig/signcerts/peer3Signer.pem
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/msp/sampleconfig/keystore/peer3Signer.pem
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/msp/sampleconfig/cacerts/peerOrg1.pem
      # - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer3
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb3:5984
    extra_hosts:
      - "orderer0:10.16.80.209"
      - "peer0:10.16.80.210"
      - "peer1:10.16.80.211"
      - "peer2:10.16.80.212"
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto/peer/peer3/localMspConfig:/etc/hyperledger/fabric/msp/sampleconfig
    ports:
      - 7051:7051
      - 7053:7053
    depends_on:
      #- orderer0
      #- peer0
      #- peer1
      #- peer2
      - couchdb3

