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

  couchdb1:
    container_name: couchdb1
    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/couchdb1:/opt/couchdb/data
    ports:
      - "5984:5984"

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

