1. 程式人生 > >Fabric CLI容器啟動的坑

Fabric CLI容器啟動的坑

這個坑是在使用鏈碼的時候發現的,第一次成功了,等到下次再想使用的時候發現cli容器啟動不了(啟動後又馬上關閉了)

下面是截的一段錯誤:

我是通過下面程式碼來啟動整個開發者模式,其中包括cli容器啟動

docker-compose -f docker-compose-simple.yaml up
orderer      | 2018-12-04 03:01:56.867 UTC [grpc] infof -> DEBU 153 transport: loopyWriter.run returning. connection error: desc = "transport is closing"
orderer      | 2018-12-04 03:01:56.868 UTC [common/deliver] Handle -> WARN 154 Error reading from 172.19.0.5:59222: rpc error: code = Canceled desc = context canceled
orderer      | 2018-12-04 03:01:56.868 UTC [orderer/common/server] func1 -> DEBU 155 Closing Deliver stream
orderer      | 2018-12-04 03:01:56.868 UTC [grpc] infof -> DEBU 156 transport: loopyWriter.run returning. connection error: desc = "transport is closing"
peer         | 2018-12-04 03:01:56.960 UTC [gossip/election] waitForMembershipStabilization -> DEBU 177 [243 207 228 28 171 240 246 50 47 126 76 107 39 195 188 89 124 172 71 55 154 250 154 119 204 184 74 34 122 52 159 71] : Exiting, peers found 0
peer         | 2018-12-04 03:01:56.961 UTC [gossip/election] leaderElection -> DEBU 178 [243 207 228 28 171 240 246 50 47 126 76 107 39 195 188 89 124 172 71 55 154 250 154 119 204 184 74 34 122 52 159 71] : Entering
peer         | 2018-12-04 03:01:56.961 UTC [gossip/election] propose -> DEBU 179 [243 207 228 28 171 240 246 50 47 126 76 107 39 195 188 89 124 172 71 55 154 250 154 119 204 184 74 34 122 52 159 71] : Entering
peer         | 2018-12-04 03:01:56.961 UTC [gossip/election] propose -> DEBU 17a [243 207 228 28 171 240 246 50 47 126 76 107 39 195 188 89 124 172 71 55 154 250 154 119 204 184 74 34 122 52 159 71] : Exiting
peer         | 2018-12-04 03:01:56.962 UTC [gossip/election] waitForInterrupt -> DEBU 17b [243 207 228 28 171 240 246 50 47 126 76 107 39 195 188 89 124 172 71 55 154 250 154 119 204 184 74 34 122 52 159 71] : Entering
cli exited with code 1

但沒跑多久就出來了 cli exited with code 1,容器退出了

輸入

docker logs 容器ID     //檢視容器日誌

容器ID可通過docker ps -a 檢視name為cli的容器ID

在日誌後面發現了錯誤

Error: got unexpected status: BAD_REQUEST -- error authorizing update: error validating ReadSet: readset expected key [Group]  /Channel/Application at version 0, but got version 1

此問題是歷史資料未清除乾淨,可能造成的原因:啟動時未關閉之前的映象,根源是由於有一個已經存在的channel,阻止進一步的執行而引起的。

所有簡單粗暴的方法就是把刪除所有容器

docker rm $(docker ps -aq)

然後問題解決了,cli容器不會自動退出了。