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

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

  peer0:
    container_name: peer0
    extends:
      file: peer-base/peer-base.yaml
      service: peer-base
    environment:
      - CORE_PEER_ID=peer0
      - CORE_PEER_ADDRESS=peer0:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0:7051
      - CORE_PEER_LOCALMSPID=Org1MSP
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/msp/sampleconfig/tls_config/peer0Signer-peer0-peerOrg0-tls.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/msp/sampleconfig/tls_config/peer0Signer-peer0-peerOrg0-tls.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/tls/peerOrg0.pem
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=peer0
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984
    extra_hosts:
      - "orderer0:10.16.80.209"
    volumes:
      - /var/run/:/host/var/run/
      - ./crypto-config/peerOrganizations/peerOrg1/peers/peer0.peerOrg1:/etc/hyperledger/fabric/msp/sampleconfig
      - ./crypto-config/peerOrganizations/peerOrg1/msp/cacerts:/etc/hyperledger/tls
    ports:
      - 7051:7051
      - 7053:7053
    depends_on:
      - couchdb0

