fabric中bootstrap.sh到底帮助我们干了什么?(手动执行相关操作安装fabric2.4)

目录

一、bootstrap.sh是啥?到底有什么作用?

二、脚本文件中的这三个功能是怎么实现的,该怎么去手动实现避免网络原因浪费时间呢?

1.下载fabric-sample源码

 2. 拉取二进制文件

 3.拉取docker镜像


小伙伴们在跟着官方示例来安装fabric的时候都是相当烦恼的,curl -sSL https://bit.ly/2ysbOFE | bash -s 这个命令怎么执行都是失败的,搞来搞去也没搞明白到底在干嘛最后白白浪费掉了一天的时间(实际上由于网络的原因)。这篇文章介绍如何快速稳定安装官方示例fabric-samples文件、拉取二进制文件和下载所需要的镜像来代替官方示例的这行代码。

 选取自己的版本后就可以看到官方文档我选取的是2.4

一、bootstrap.sh是啥?到底有什么作用?

 

这是官方示例的命令。反正我第一次看见很懵逼???到底在干啥啊?

可以去这个地址看看到底是啥东西?

 复制这个地址,然后在浏览器打开之后发现这是一个脚本文件

 可以复制到自己的虚拟机或者服务器中的文件中,操作如下

  复制脚本文件后输入以下指令

cat > bootstrap.sh

然后将刚才复制的内容拷贝上去 (然后 ctrl + c 结束写入)

给脚本文件权限

chmod +x bootstrap.sh

 接下来我们再服务器或者刚才的网页中看看这个bootstrap脚本到底是干啥的?

 大致可以看出来有这样三个功能:

  1. 克隆github上的fabric源码
  2. 拉取fabric二进制文件,就是一些工具
  3. 拉取相关的docker镜像

二、脚本文件中的这三个功能是怎么实现的,该怎么去手动实现避免网络原因浪费时间呢?

1.下载fabric-sample源码

可以看到脚本中是去克隆github上的源码,这样不仅速度慢而且还有可能链接失败。我们该怎快去解决呢?

嫌弃下面的操作繁琐也可以直接克隆我的仓库 已经为大家准备好了

输入命令

git clone https://gitee.com/guandw/fabric-samples.git
​

如果已经克隆了我的仓库的fabric-samples下面的这步操作就不用看了。

可以将github上的仓库导入到gitee上这样就不会连接失败而且克隆速度也会提升

然后将脚本里面的github的fabric-samples的URL(下图1示)复制到这里(图二)

图一
图一
图二

 这样你就可以从自己的仓库克隆了

 2. 拉取二进制文件

先来看看脚本文件里面是怎么样操作的

2.1. https://github.com/hyperledger/fabric/releases(根据自己对应版本的脚本文件里的地址来 我的)

  选取对应的操作系统,一般就是linux 右键复制链接后,直接用wget命令

wget https://github.com/hyperledger/fabric/releases/download/v2.4.6/hyperledger-fabric-linux-amd64-2.4.6.tar.gz

2.2. https://github.com/hyperledger/fabric-ca/releases(根据自己对应版本的脚本文件里的地址来)

同样右键复制链接 使用wget

wget https://github.com/hyperledger/fabric-ca/releases/download/v1.5.5/hyperledger-fabric-ca-linux-amd64-1.5.5.tar.gz

 

 下载完后查看一下到底下载的啥

 2.3.解压这俩文件

tar zvxf xxxxxx(你下载压缩文件)

tar zvxf xxxxxx(你下载压缩文件)

 解压后查看生成的工具和配置文件

 2.4 讲bin和config移动到你自己fabric-sample目录下

mv bin/ /home/ubuntu/go/src/github.com/hyperledger/fabric-samples
mv config/ /home/ubuntu/go/src/github.com/hyperledger/fabric-samples

配置环境变量

export PATH=$PATH:/home/ubuntu/go/src/github.com/hyperledger/fabric-samples/bin

 这时候使用which peer检验一下

 3.拉取docker镜像

 看了看脚本文件 似乎不太好自己办。。干脆就用它的脚本吧,但是我们已经手动实现了一部分,该咋办呢?

大概意思就是带上d参数就不再下载docker镜像了、带上参数s就不再下载fabric-sample镜像了。。

那么我们可以使用以下命令

./bootstrap.sh -sb

也就是只执行脚本文件中的下载docker镜像部分的函数

 开始系统内没有别的镜像的话下载完后的镜像应该如下

 这时候fabric-samples下面也有了bin和config目录了

 下载 fabric ⼆进制⽂件、docker 镜像和 fabric 样例的工作也就完成了 是不是很nice呢?

### 解决方案 在执行 `./bootstrap.sh` 脚本时,如果遇到拉取 Docker 或 Kubernetes 镜像失败的情况,可以按照以下方法解决问题。 #### 方法一:修改 `bootstrap.h` 文件并手动处理镜像 通过调整脚本逻辑以及手动预的方式解决镜像下载问题。具体操作如下: 1. **注释掉二进制文件下载部分** 编辑 `bootstrap.h` 文件,找到负责下载 Fabric 二进制文件的部分,并将其注释掉。这样可以让脚本专注于拉取镜像而不是尝试下载不必要的组件[^1]。 2. **执行脚本并记录错误日志** 运行 `./bootstrap.sh` 并观察是否有特定的镜像拉取失败提示。通常情况下,这些错误可能是由于网络连接不稳定或者目标仓库不可达引起的。 3. **手动拉取缺失的镜像** 如果某些镜像无法自动下载,则可以通过命令手动获取它们。例如: ```bash docker pull hyperledger/fabric-peer:1.4.4 docker image tag hyperledger/fabric-peer:1.4.4 hyperledger/fabric-peer:latest ``` 此外,还可以检查其他依赖项是否存在类似的版本冲突或命名差异问题。 --- #### 方法二:配置 Docker API 支持远程访问 有时,Docker 守护进程未正确设置也可能导致镜像加载异常。此时可通过启用 Docker 的 HTTP/HTTPS 接口来改善情况。 1. **编辑 Docker 启动服务配置文件** 使用文本编辑器打开 `/lib/systemd/system/docker.service` 文件,在 `[Service]` 小节下的 `ExecStart` 行后面追加 `-H tcp://0.0.0.0:2375` 参数以便允许外部客户端请求接入[^2]: ```bash ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 ``` 2. **重新加载系统守护程序和服务状态** 更新 systemd 配置之后记得刷新缓存并向新设定应用生效: ```bash sudo systemctl daemon-reload sudo systemctl restart docker ``` --- #### 方法三:利用自定义参数运行脚本 对于更高级别的定制需求来说,可以直接向 `./bootstrap.sh` 提供额外选项来自定义行为模式。比如当不需要同步更新样本项目库时可附加 `-s`;而希望跳过容器映射环节则加上 `-d` 标记[^4]: ```bash ./bootstrap.sh <version> [-d] [-s] ``` 其中 `<version>` 应替换为你期望部署的具体 Hyperledger Fabric 版本号字符串形式表示(如 `"2.4"`)。 另外值得注意的是该工具内部实现机制决定了即使发生个别资源丢失状况也不会中断整个流程继续推进下去直到完成预定任务列表为止[^3]。 --- ### 总结 综合以上三种途径任选其一均可有效缓解乃至彻底消除因网络条件限制所引发的一系列连锁反应从而保障整体环境初始化顺利完成使命达成既定目标。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小小小关同学

你的支持就是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值