Hyperledger Fabric Peer容器无法启动:CouchDB连接失败求助
Hyperledger Fabric 1.4.4 Peer容器无法连接CouchDB求助
我在CentOS7服务器上部署了Hyperledger Fabric 1.4.4版本,最近碰到了一个棘手的问题——Peer容器一直启动失败,日志里反复提示无法连接CouchDB。但奇怪的是,CouchDB容器明明是正常运行的,我甚至尝试在docker-compose.yml里添加了GODEBUG=netdns=go参数来解决DNS解析的问题,结果还是没能搞定,这个问题已经困扰我好几周了,实在没办法了来求助!
下面是Peer容器的报错日志和我的docker-compose.yml配置,麻烦各位帮我看看问题出在哪:
Peer容器报错日志
2020-01-30 11:03:43.890 UTC [nodeCmd] serve -> INFO 001 Starting peer: Version: 1.4.4 Commit SHA: 7917a40 Go version: go1.12.12 OS/Arch: linux/amd64 Chaincode: Base Image Version: 0.4.18 Base Docker Namespace: hyperledger Base Docker Label: org.hyperledger.fabric Docker Namespace: hyperledger 2020-01-30 11:03:43.891 UTC [ledgermgmt] initialize -> INFO 002 Initializing ledger mgmt 2020-01-30 11:03:43.891 UTC [kvledger] NewProvider -> INFO 003 Initializing ledger provider 2020-01-30 11:03:43.921 UTC [kvledger] NewProvider -> INFO 004 ledger provider Initialized panic: Error initializing ledger provider: unable to connect to CouchDB, check the hostname and port: error unmarshalling json data: invalid character '<' looking for beginning of value goroutine 1 [running]: github.com/hyperledger/fabric/core/ledger/ledgermgmt.initialize(0xc0003045a0) /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgermgmt/ledger_mgmt.go:81 +0x78a github.com/hyperledger/fabric/core/ledger/ledgermgmt.Initialize.func1() /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgermgmt/ledger_mgmt.go:53 +0x2a sync.(*Once).Do(0x26d0748, 0xc0003ed458) /opt/go/src/sync/once.go:44 +0xb3 github.com/hyperledger/fabric/core/ledger/ledgermgmt.Initialize(0xc0003045a0) /opt/gopath/src/github.com/hyperledger/fabric/core/ledger/ledgermgmt/ledger_mgmt.go:52 +0x55 github.com/hyperledger/fabric/peer/node.serve(0x26d0668, 0x0, 0x0, 0x0, 0x0) /opt/gopath/src/github.com/hyperledger/fabric/peer/node/start.go:181 +0x568 github.com/hyperledger/fabric/peer/node.glob..func3(0x25c7240, 0x26d0668, 0x0, 0x0, 0x0, 0x0) /opt/gopath/src/github.com/hyperledger/fabric/peer/node/start.go:126 +0xf1 github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.(*Command).execute(0x25c7240, 0x26d0668, 0x0, 0x0, 0x25c7240, 0x26d0668) /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command.go:762 +0x465 github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x25c7960, 0xc0003edf60, 0x1, 0x1) /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command.go:852 +0x2ec github.com/hyperledger/fabric/vendor/github.com/spf13/cobra.(*Command).Execute(...) /opt/gopath/src/github.com/hyperledger/fabric/vendor/github.com/spf13/cobra/command.go:800 main.main() /opt/gopath/src/github.com/hyperledger/fabric/peer/main.go:53 +0x41f
docker-compose.yml配置
# # Copyright IBM Corp All Rights Reserved # # SPDX-License-Identifier: Apache-2.0 # version: '2' networks: basic: services: ca.example.com: image: hyperledger/fabric-ca environment: - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server - FABRIC_CA_SERVER_CA_NAME=ca.example.com - FABRIC_CA_SERVER_CA_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem - FABRIC_CA_SERVER_CA_KEYFILE=/etc/hyperledger/fabric-ca-server-config/4239aa0dcd76daeeb8ba0cda701851d14504d31aad1b2ddddbac6a57365e497c_sk ports: - "7054:7054" command: sh -c 'fabric-ca-server start -b admin:adminpw' volumes: - ./crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config container_name: ca.example.com networks: - basic orderer.example.com: container_name: orderer.example.com image: hyperledger/fabric-orderer environment: - FABRIC_LOGGING_SPEC=info - ORDERER_GENERAL_LISTENADDRESS=peer0.org1.example.com - ORDERER_GENERAL_GENESISMETHOD=file - ORDERER_GENERAL_GENESISFILE=/etc/hyperledger/configtx/genesis.block - ORDERER_GENERAL_LOCALMSPID=OrdererMSP - ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp/orderer/msp - GODEBUG=netdns=go working_dir: /opt/gopath/src/github.com/hyperledger/fabric/orderer command: orderer ports: - 7050:7050 volumes: - ./config/:/etc/hyperledger/configtx - ./crypto-config/ordererOrganizations/example.com/orderers/orderer.example.com/:/etc/hyperledger/msp/orderer - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/:/etc/hyperledger/msp/peerOrg1 networks: - basic peer0.org1.example.com: container_name: peer0.org1.example.com image: hyperledger/fabric-peer environment: - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - CORE_PEER_ID=peer0.org1.example.com - FABRIC_LOGGING_SPEC=info - CORE_CHAINCODE_LOGGING_LEVEL=info - CORE_PEER_LOCALMSPID=Org1MSP - CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp/peer/ - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 # # the following setting starts chaincode containers on the same # bridge network as the peers # https://docs.docker.com/compose/networking/ # - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_basic - CORE_LEDGER_STATE_STATEDATABASE=CouchDB - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984 # The CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME and CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD # provide the credentials for ledger to connect to CouchDB. The username and password must # match the username and password set for the associated CouchDB. - CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME= - CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD= - GODEBUG=netdns=go working_dir: /opt/gopath/src/github.com/hyperledger/fabric command: peer node start # command: peer node start --peer-chaincodedev=true ports: - 7051:7051 - 7053:7053 volumes: - /var/run/:/host/var/run/ - ./crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/msp/peer - ./crypto-config/peerOrganizations/org1.example.com/users:/etc/hyperledger/msp/users - ./config:/etc/hyperledger/configtx depends_on: - orderer.example.com - couchdb networks: - basic couchdb: container_name: couchdb image: hyperledger/fabric-couchdb # Populate the COUCHDB_USER and COUCHDB_PASSWORD to set an admin user and password # for CouchDB. This will prevent CouchDB from operating in an "Admin Party" mode. environment: - COUCHDB_USER= - COUCHDB_PASSWORD= ports: - 5984:5984 networks: - basic cli: container_name: cli image: hyperledger/fabric-tools tty: true environment: - GOPATH=/opt/gopath - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock - FABRIC_LOGGING_SPEC=info - CORE_PEER_ID=cli - CORE_PEER_ADDRESS=peer0.org1.example.com:7051 - CORE_PEER_LOCALMSPID=Org1MSP - CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp - CORE_CHAINCODE_KEEPALIVE=10 working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer command: /bin/bash volumes: - /var/run/:/host/var/run/ - ./../chaincode/:/opt/gopath/src/github.com/ - ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ networks: - basic # depends_on: #- orderer.example.com #- peer0.org1.example.com #- couchdb
内容的提问来源于stack exchange,提问作者Nitish Gupta
相关产品推荐
相关产品推荐

