当前位置: 首页 > news >正文

fabric启动节点var/hyperledger/production: permission denied

场景

我在节点的compose文件中进行了数据挂载:

 - ../../data/bank1/peer1:/tmp/hyperledger/bank1/peer1

但是运行是依然报错为var/hyperledger/production的权限问题,并且我也已经对../../data/bank1/peer1目录设置了操作权限

services:peer1-bank1:container_name: peer1-bank1image: hyperledger/fabric-peeruser: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"environment:- CORE_PEER_ID=peer1-bank1- CORE_PEER_ADDRESS=peer1-bank1:7051- CORE_PEER_LOCALMSPID=Bank1MSP- CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/msp- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock- CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=fabric-bank1- FABRIC_LOGGING_SPEC=debug- CORE_PEER_TLS_ENABLED=true- CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/tls/signcerts/cert.pem- CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/tls/keystore/key.pem- CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/tlsca/tls-ca-cert.pem- CORE_PEER_GOSSIP_USELEADERELECTION=true- CORE_PEER_GOSSIP_ORGLEADER=false- CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1-bank1:7051- CORE_PEER_GOSSIP_SKIPHANDSHAKE=false- CORE_LEDGER_STATE_STATEDATABASE=CouchDB- CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb.peer1-bank1:5984- CORE_LEDGER_STATE_COUCHDBCONFIG_USERNAME=admin- CORE_LEDGER_STATE_COUCHDBCONFIG_PASSWORD=adminpwworking_dir: /opt/gopath/src/github.com/hyperledger/fabric/bank1/peer1volumes:- ../chaincodeRun:/host/var/run- ../../data/bank1/peer1:/tmp/hyperledger/bank1/peer1 - ../../organizations/peerOrganizations/bank1.example.com/peers/peer1-bank1.bank1.example.com/msp:/etc/hyperledger/msp- ../../organizations/peerOrganizations/bank1.example.com/peers/peer1-bank1.bank1.example.com/tls:/etc/hyperledger/tls- ../../organizations/fabric-ca/tls-ca/crypto:/etc/hyperledger/tlscanetworks:- fabric-bank1

报错日志:

panic: Could not create _lifecycle chaincodes install path: mkdir /var/hyperledger/production: permission denied。

根本原因:

首先,Fabric Peer 默认将 fileSystemPath为 /var/hyperledger/production。这表示即使我进行了挂载,但是启动时节点依然会在producction目录下操作,所以并没有挂载正确。

然后,docker compose文件通常以root身份启动运行。但是如果像我一样在YAML文件里设置了user的字段,类似“user: "${LOCAL_UID:-1000}:${LOCAL_GID:-1000}"”,就会以其他身份进行操作。同时,由于var/hyperledger/production目录只能由root用户操作,再加上前面说的挂载不正确,所以会报错没有权限。

解决方案:

最简单的,可通过环境变量 CORE_PEER_FILESYSTEMPATH 覆盖系统默认的/var/hyperledger/productionl路径。可以换为我们自定义的。

其次,就是将挂载目录修改为系统默认的路径。

但是这两者都需要注意给宿主主机的挂载路径配置操作权限


文章转载自:

http://NDPLwSse.pnmnL.cn
http://WDchsbjP.pnmnL.cn
http://6C4tQUbO.pnmnL.cn
http://aO3E7u3v.pnmnL.cn
http://mnrX2ZvB.pnmnL.cn
http://ejwqRkSM.pnmnL.cn
http://RtowpRKA.pnmnL.cn
http://LdIGs1EC.pnmnL.cn
http://qCkmoCfN.pnmnL.cn
http://tDDMobvZ.pnmnL.cn
http://goCJaxhI.pnmnL.cn
http://eGAGdIIP.pnmnL.cn
http://4S3eh0r5.pnmnL.cn
http://sqq6atcX.pnmnL.cn
http://vuCVuZNo.pnmnL.cn
http://Y5U4oOgL.pnmnL.cn
http://Xk79waRS.pnmnL.cn
http://Ra14Jn9g.pnmnL.cn
http://AiLTbgq7.pnmnL.cn
http://C3chjK1u.pnmnL.cn
http://VhVktJnv.pnmnL.cn
http://zlMg9IZ0.pnmnL.cn
http://JZQKzbL2.pnmnL.cn
http://mtFS0VBM.pnmnL.cn
http://1n8xGoNX.pnmnL.cn
http://3fYApuvx.pnmnL.cn
http://pyxQuuH8.pnmnL.cn
http://j7Y5OBTH.pnmnL.cn
http://2ong7pLJ.pnmnL.cn
http://MptkefYo.pnmnL.cn
http://www.dtcms.com/a/384900.html

相关文章:

  • 小型无人机传感器仿真模型MATLAB实现方案
  • 拓扑dp|博弈|正难则反
  • linux时间管理
  • 第2章 语言模型:自然语言处理的基石
  • 汽车电子电气架构 --- 新趋势下的挑战与技术
  • 地铁站电子钟:NTP实时校准时间
  • 【数据集】2025年国家自然科学基金立项名单(经管类)
  • Elastic APM 2025 新特性:Tail-based Sampling 和 GenAI 优化
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘sklearn’ 问题
  • 《二战系统分析师》第五章总结
  • 机器学习中的距离总结
  • MongoDB集群开发完全指南:从原理到实践
  • apache phoenix sql 命令大全详解
  • python 读取大文件优化示例
  • 布草洗涤厂设备租赁押金原路退回系统—东方仙盟
  • JAVASCRIPT 前端数据库-V9--仙盟数据库架构-—仙盟创梦IDE
  • 开源AI大模型、AI智能名片与S2B2C商城小程序:从“不出现=不存在”到“精准存在”的数字化转型路径
  • LNMP环境搭建:高效Web服务器指南
  • ACP(三):让大模型能够回答私域知识问题
  • Angle-Based SLAM on 5G mmWave Systems: Design, Implementation, and Measurement
  • 京瓷1025打印机打印有底灰简单处理
  • UE5 播放关卡时,将渲染画面的相机转变为关卡序列中的相机
  • JavaSE 异常
  • Unity Excel数据导入工具
  • 镭神C16在Ubuntu下的连接和驱动安装教程
  • 如何在qt中配置libssh
  • 使用 Spring Boot 3.x 集成 Kafka 并在 Kubernetes 上部署的全流程指南
  • 记录本地安装anaconda pytorch python
  • 关于机器学习中的各种“学习”
  • Parlant框架深度技术解析:革命性AI代理行为建模引擎