添加sleep的顺序错了,'./script.sh ; sleep 20'改为'sleep 20 ; ./script.sh'
Hyperledger Fabric 在 chaincode-docker-devmode 中為何加入CouchDB容器,會導致Cli容器無法啟動?
5因为目前还在初学阶段,所以选择fabric-simple 中的开发者模式来测试chaincode,但当我在docker-compose-simple.yaml 中加入 CouchDB容器,如下:
version: '2'
services:
orderer:
container_name: orderer
image: hyperledger/fabric-orderer
environment:
- FABRIC_LOGGING_SPEC=debug
- ORDERER_GENERAL_LISTENADDRESS=orderer
- ORDERER_GENERAL_GENESISMETHOD=file
- ORDERER_GENERAL_GENESISFILE=orderer.block
- ORDERER_GENERAL_LOCALMSPID=DEFAULT
- ORDERER_GENERAL_LOCALMSPDIR=/etc/hyperledger/msp
- GRPC_TRACE=all=true,
- GRPC_VERBOSITY=debug
working_dir: /opt/gopath/src/github.com/hyperledger/fabric
command: orderer
volumes:
- ./msp:/etc/hyperledger/msp
- ./orderer.block:/etc/hyperledger/fabric/orderer.block
ports:
- 7050:7050
couchdb:
container_name: couchdb
image: hyperledger/fabric-couchdb
environment:
- COUCHDB_USER=
- COUCHDB_PASSWORD=
ports:
- 5984:5984
peer:
container_name: peer
image: hyperledger/fabric-peer
dns_search: .
environment:
- CORE_PEER_ID=peer
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- FABRIC_LOGGING_SPEC=DEBUG
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
- CORE_LEDGER_STATE_STATEDATABASE=CouchDB
- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb:5984
- CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=
- CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=
volumes:
- /var/run/:/host/var/run/
- ./msp:/etc/hyperledger/msp
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: peer node start --peer-chaincodedev=true
ports:
- 7051:7051
- 7053:7053
depends_on:
- orderer
- couchdb
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=DEBUG
- CORE_PEER_ID=cli
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
working_dir: /opt/gopath/src/chaincodedev
command: /bin/bash -c './script.sh ; sleep 20'
volumes:
- /var/run/:/host/var/run/
- ./msp:/etc/hyperledger/msp
- ./../chaincode:/opt/gopath/src/chaincodedev/chaincode
- ./:/opt/gopath/src/chaincodedev/
depends_on:
- orderer
- peer
chaincode:
container_name: chaincode
image: hyperledger/fabric-ccenv
tty: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
- FABRIC_LOGGING_SPEC=DEBUG
- CORE_PEER_ID=example02
- CORE_PEER_ADDRESS=peer:7051
- CORE_PEER_LOCALMSPID=DEFAULT
- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp
working_dir: /opt/gopath/src/chaincode
command: /bin/bash -c 'sleep 6000000'
volumes:
- /var/run/:/host/var/run/
- ./msp:/etc/hyperledger/msp
- ./../chaincode:/opt/gopath/src/chaincode
depends_on:
- orderer
- peer
当我使用以下指令启动容器,
docker-compose -f docker-compose-simple.yaml up
唯有Cli 容器是无法启动的状态,并在Logs中返回以下错误讯息
Error: error getting endorser client for channel: endorser client failed to connect to peer:7051: failed to create new connection: connection error: desc = "transport: error while dialing: dial tcp 172.29.0.4:7051: connect: connection refused"
有查询到同样错误讯息的人是在docker 启动设定档加入sleep指令,加长等待时间以确定CouchDB启动
command: /bin/bash -c 'sleep 6000000'
但我即使加入了,还是会报相同的错误
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
2条回答
为你推荐
- 安装链码时为什么报了can not find package 的错
- docker启动redis容器后状态为Exited,该怎么jie'jue
- docker容器运行mysql未做挂在,数据却没有丢失?
- 为什么Docker容器中的应用无法重启?
- 在另一个容器docker中执行另一个容器命令
- 如何在go-dockerclient中仅检索运行特定映像的容器?
- docker
- 2个回答
- 如何在带有golang的不同容器中使用docker-compose env文件变量?
- docker
- 1个回答
- 在Docker容器中设置CPU限制后如何运行Go程序?
- networking
- docker
- 1个回答
- 无法在Docker容器中执行二进制文件,但从主机执行
- docker
- 1个回答
- 如何在Docker远程api中创建容器? (去-dockerclient)
- docker
- 1个回答
- Golang Docker容器未在Docker-Compose中重新启动
- restart
- rabbitmq
- docker
- 1个回答
- 无法在docker-compose中使dep和dockerize一起工作(但它们是分开工作的)。 为什么?
- docker
- 1个回答
- 通过Docker API在正在运行的容器中执行powershell命令
- powershell
- docker
- 1个回答
- HyperLedger-Fabric ChainCode部署-Base64错误
- hyperledger
- 1个回答
- 找不到在Windows 7上运行的自定义链码路径Hyperledger Fabric V1.0本地网络
- blockchain
- hyperledger
- 1个回答
- 如何在docker容器中重新加载服务配置(php-fpm)?
- Docker应用程序无法访问在另一个容器中运行的MySQL
- 如何在与docker-compose链接到另一个容器的容器中运行linux守护进程?
- 给docker起名字并进入容器的命令中-it的意义
- docker容器正常启动,宿主机器无法访问启动的服务
- docker
- 2个回答