一、问题描述
最近工作需要对fabric2的源码进行改造,每次改完想要部署测试的时候,make docker这个命令执行起来超级慢。找到这篇文章的读者应该都遇到与我相同的问题,本文将分析问题产生的原因并提出解决方法。
二、问题分析
Fabric的镜像是基于Alpine(Alpine Linux 是一个面向安全,轻量级的基于musl libc与busybox项目的Linux发行版),Alpine的包管理工具是APK,Alpine系统默认源是国外,因此在以Alpine为基础创建的镜像容器中安装软件会很慢。比如:安装最耗时的是"installing gcc",真的要等半天。
三、解决方法
针对上述问题的解决思路很简单:替换镜像容器的源。
本文将使用清华大学开源软件源,地址为:http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.11/main/,v3.11是Alpine的版本号。
那如何Fabric镜像容器的源呢?具体步骤如下:
进入Fabric源码中的images目录,该目录下有5个子目录,每个目录包含一个Dockerfile。如下图所示:
依次修改每个Dockerfile文件,在对应的位置增加代码:
RUN echo -e http://mirrors.tuna.tsinghua.edu.cn/alpine/v3.11/main/ > /etc/apk/repositories
修改后的Dockerfile文件内容如下图所示:
tools/Dockerfile:
orderer/Dockerfile:
peer/Dockerfile:
ccenv/Dockerfile:
baseos/Dockerfile:
修改完这5个Dockerfile文件之后,在去Fabric源码根目录下执行:make docker,感觉像风一样快。