You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启动Hyperledger Fabric首个网络遇script.sh不存在错误求助

解决Hyperledger Fabric byfn.sh启动时找不到scripts/script.sh的问题

你在Windows环境下启动首个Fabric网络时碰到的这个错误,大概率是路径挂载或者环境配置的问题,我给你梳理几个排查和解决的方向:

1. 确保在正确的工作目录执行脚本

首先要确认你是在**fabric-samples/first-network**目录下运行的./byfn.sh -m up。脚本里调用scripts/script.sh用的是相对路径,如果你在上级目录或者其他路径执行,容器内就找不到对应的文件。

执行以下命令切换到正确目录:

cd C:\User\XXXXX\fabric-samples\first-network

之后再重新运行启动命令。

2. 检查Docker Desktop的文件共享权限

Windows下Docker容器要访问主机的文件,必须开启对应盘符的文件共享:

  • 打开Docker Desktop,点击右上角设置图标
  • 进入Resources > File Sharing选项
  • 确保你的C:盘(或者C:\User\XXXXX所在的盘符)已经被勾选
  • 点击Apply & Restart重启Docker,让设置生效

3. 规避路径中的空格和格式问题

如果你的用户名目录(XXXXX)包含空格,可能会导致Docker挂载卷时解析失败。如果是这种情况,建议把fabric-samples移动到一个没有空格的路径下,比如C:\fabric-samples。

另外,如果你用的是Git Bash或者WSL环境,要确保路径的斜杠是Linux风格的(/而不是\),避免Windows路径格式在容器内不兼容。

4. 验证容器内的挂载路径是否正确

可以手动检查cli容器里是否真的挂载了scripts目录:

  1. 先启动网络但不执行初始化脚本:
./byfn.sh -m up -s none
  1. 进入cli容器:
docker exec -it cli bash
  1. 在容器内查看目标路径:
ls -l /opt/gopath/src/github.com/hyperledger/fabric/peer/scripts

如果看不到script.sh,说明挂载配置有问题。可以打开first-network/docker-compose-cli.yaml,检查volumes部分的挂载规则,应该有类似这样的配置:

volumes:
    - ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts

确认主机侧的./scripts路径相对于docker-compose-cli.yaml是正确的(也就是first-network/scripts)。

5. 清理缓存后重试

旧的容器、镜像缓存可能会导致异常,先清理环境再重新启动:

# 停止并清理当前网络
./byfn.sh -m down
# 清理所有未使用的Docker资源
docker system prune -a
# 重新启动网络
./byfn.sh -m up

内容的提问来源于stack exchange,提问作者Arun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:21:36