Невозможно подключить одноранговый контейнер к CouchDB - PullRequest
0 голосов
/ 10 декабря 2018

У меня проблемы с подключением однорангового контейнера к CouchDB.Я полагаю, что это проблема с сетью докеров, но я не могу найти решение.

Одноранговые журналы:

2018-12-10 16:13:26.075 UTC [couchdb] handleRequest -> DEBU 06a HTTP Request: GET / HTTP/1.1 | Host: cdbp0.controltower.com:5984 | User-Agent: Go-http-client/1.1 | Accept: multipart/related | Accept-Encoding: gzip |  |
2018-12-10 16:13:26.076 UTC [couchdb] handleRequest -> WARN 06b Retrying couchdb request in 2m8s. Attempt:11  Error:Get http://cdbp0.controltower.com:5984/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
2018-12-10 16:15:34.077 UTC [couchdb] VerifyCouchConfig -> DEBU 06c Exiting VerifyCouchConfig()
panic: Error in instantiating ledger provider: Unable to connect to CouchDB, check the hostname and port: Get http://cdbp0.controltower.com:5984/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

Журналы CouchDB отображают несколько таких ошибок:

[error] 2018-12-10T16:32:28.948825Z nonode@nohost emulator -------- Error in process <0.325.0> with exit value:
{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users",[{file,"src/mem3_shards.erl"},{line,403}]},{mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},{line,378}]},{mem3_shards,load_shards_from_disk,2,[{file,"src/mem3_shards.erl"},{line,407}]},{mem3_shards,for_docid,3,[{file,"src/mem3_shards.erl"},{line,91}]},{fabric_doc_open,go,3,[{file,"src/fabric_doc_open.erl"},{line,38}]},{chttpd_auth_cache,ensure_auth_ddoc_exists,2,[{file,"src/chttpd_auth_cache.erl"},{line,187}]},{chttpd_auth_cache,listen_for_changes,1,[{file,"src/chttpd_auth_cache.erl"},{line,134}]}]}

Docker compose:

  p0.controltower.com:
    extends:
      file: compose-base.yml
      service: peer
    container_name: p0.controltower.com
    dns_search: .
    environment:
      - CORE_PEER_ID=p0.controltower.com
      - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_PEER_LOCALMSPID=ControlTowerMSP
      - CORE_PEER_ADDRESS=p0.controltower.com:7051
      - CORE_PEER_GOSSIP_BOOTSTRAP=p0.controltower.com:7051
      - CORE_PEER_GOSSIP_EXTERNALENDPOINT=p0.controltower.com:7051
      - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=frenchspoon_compose_frenchspoon.net
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=cdbp0.controltower.com:5984
      - CORE_PEER_TLS_SERVERHOSTOVERRIDE=p0.controltower.co
      - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
      - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
      - NODECHAINCODE=/etc/hyperledger/chaincode/src/chaincode_example/node/
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric
    #command: peer node start --peer-chaincodedev=true
    ports:
      - 7051:7051
      #- 7052:7052
      - 7053:7053
    volumes:
        - /var/run/:/host/var/run/
        - ./crypto-config/peerOrganizations/controltower.com:/etc/hyperledger/crypto/peer
        - ./config:/etc/hyperledger/configtx
        - ./chaincode:/etc/hyperledger/chaincode
    depends_on:
      - o0.controltower.com
      - cdbp0.controltower.com
    networks:
      - frenchspoon.net

  cdbp0.controltower.com:
    dns_search: .
    extends:
      file: compose-base.yml
      service: couchdb
    container_name: cdbp0.controltower.com
    environment:
      - COUCHDB_USER=
      - COUCHDB_PASSWORD=
    ports:
      - 5984:5984
    networks:
      - frenchspoon.net

compose-base.yml:

  couchdb:
    image: hyperledger/fabric-couchdb

  peer:
    image: hyperledger/fabric-peer
    working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
    command: sh -c 'echo "Sleep 20 sec waiting CouchDB"; sleep 20; peer node start'
    dns_search: .
    environment:
      # - CORE_PEER_ADDRESSAUTODETECT=true
      - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
      - CORE_LOGGING_LEVEL=DEBUG
      - CORE_NEXT=true
      - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
      - CORE_LEDGER_STATE_COUCHDBCONFIG_REQUESTTIMEOUT=240000
      - CORE_PEER_ENDORSER_ENABLED=true
      - CORE_PEER_PROFILE_ENABLED=true
      # - CORE_PEER_GOSSIP_IGNORESECURITY=true
      - CORE_PEER_GOSSIP_USELEADERELECTION=true
      - CORE_PEER_GOSSIP_ORGLEADER=false
      - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
      - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/crypto/peer/peers/p0/msp
      - CORE_PEER_TLS_ENABLED=true
      - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/crypto/peer/peers/p0/tls/server.crt
      - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/crypto/peer/peers/p0/tls/server.key
      - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/crypto/peer/peers/p0/tls/ca.crt
      - CORE_CHAINCODE_LOGGING_LEVEL=DEBUG
      - FABRIC_CFG_PATH=/etc/hyperledger/fabric/
      - BASE_DOCKER_NS=hyperledger
      - DOCKER_NS=hyperledger
      - ARCH=x86_64
      - PROJECT_VERSION=1.1.0
      - BASE_VERSION=0.4.6

Как вы можете видеть, я пытался добавить dns_search, поскольку это было предложенона другой пост.Я также сокращаю все тома докеров предыдущих попыток, обновил CouchDB.Интересно, стоит ли мне попробовать Fabric 1.3, но я даже близко не знаком с 1.2, поэтому предпочитаю не менять версию.

Мне также интересно, связана ли она с переменной CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODEЯ действительно не понимаю, что это за переменная.

...