Hyperledger Ledger从1.2升到1.3之后,同事反馈同样的脚本,创建通道或加入通道,部分人没问题,部分人一直有问题。 有问题的同事发现是peer对应的couchdb没起来,把持久化配置的映射卷取消才行, 否则一直提示./data/_users.couch没有权限。
笔者最终在一台fabric 1.2的机器重现该问题。 stackoverflow有少量这样的问题,不过没有很好解决方案。
docker images查询了下hyperledger/fabric-couchdb版本都是latest.
具体使用docker inspect hyperledger/fabric-couchdb 才查询到实际版本为
".base.version": "amd64-0.4.14",
这个是当前最新的版本,查看fabric安装脚本boostrap.sh
# if version not passed in, default to latest released version
export VERSION=1.3.0
# if ca version not passed in, default to latest released version
export CA_VERSION=$VERSION
# current version of thirdparty images (couchdb, kafka and zookeeper) released
export THIRDPARTY_IMAGE_VERSION=0.4.13
对应的版本应该是0.4.13, fabric1.2使用的couchdb对应是0.4.10. 而我们平常写的docker-compose.yaml都是没带镜像的版本的。 笔者猜测是镜像版本不配套, 强制指定版本。
couchdb:
container_name: couchdb
image: hyperledger/fabric-couchdb:0.4.10
使用docker-compose -f docker-compose.yml up couchdb多次测试, 出现的问题得到解决。
实际上hyperledger fabric-couchdb 0.4.14镜像使用的couchdb版本为2.2.0比较新了。
而hyperledger fabric-coudb 0.4.13镜像使用的couchdb为2.1.1。应该是版本变化有些大。
所以docker compose脚本编写的一个最佳实践是, 镜像务必带上版本号, 版本号参考fabric安装脚本bootstrap.sh为准, 不随便升级。
如果不指定版本号, 可能默认就是latest版本, 如果不小心对本机的镜像进行了清理,下次使用镜像的时候可能就自动pull latest版本。
最近更新较慢,但是忙完这阵子会给大家一些干货。 有问题也可到公众号留言。
Chin Up
本文分享自 Hyperledger实践 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!