# Fastbuild **Repository Path**: anolis/fastbuild ## Basic Information - **Project Name**: Fastbuild - **Description**: FastBuild 是一种针对容器镜像构建过程的加速框架,旨在减少网络文件下载和容器层提交带来的性能瓶颈,从而大幅提升镜像构建与部署效率。它通过本地缓存层透明地拦截并复用Dockerfile执行过程中对远程资源的请求,避免重复下载已缓存的依赖文件。此外,FastBuild 还能够在单一容器实例中并行化执行多条Dockerfile指令,加速镜像构建过程。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 6 - **Created**: 2025-04-30 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: ci **Tags**: None ## README ## FastBuild 系统介绍 FastBuild 是一种针对 Docker 镜像构建过程的加速框架,旨在减少网络文件下载和容器层提交带来的性能瓶颈,从而大幅提升镜像构建与部署效率 。它通过在 Docker Daemon 与容器构建环境之间插入本地缓存层,**透明地拦截**并**复用** Dockerfile 执行过程中对远程资源的请求,避免重复下载已缓存的依赖文件。FastBuild 还在单一容器实例中 **并行化执行多条 Dockerfile 指令**,并利用 **快照(snapshot)机制** 异步提交中间镜像层,以消除容器创建与销毁的开销。此外,FastBuild 支持**本地构建基础镜像**(通过从 Docker Hub 拉取并运行其 Dockerfile),进一步缩短首次构建的延迟。 在部署和测试 137 个主流基础镜像及其多版本 Dockerfile 的实验中,FastBuild 显示了显著的加速效果:在高带宽环境下,构建速度平均提升 **3.1×**;在低带宽(5 Mbps)环境下,最高可达 **10.6×**。同时,通过本地缓存机制,下载的数据量平均减少 **72%**,缓存只需预热 **4** 次不同版本构建,即可达到 **60–80%** 的命中率 。这种无需修改原有 Dockerfile、与 Docker 17.12 原生架构高度兼容的设计,使 FastBuild 成为 DevOps、CI/CD 以及边缘计算等需要频繁构建镜像场景中的理想优化方案 。 --- ## 快速运行指南 以下步骤基于 Docker 17.12 与 Go 1.12 环境,演示如何启动 FastBuild 系统并加速镜像构建。 ### 1. 环境准备 1. 确保已安装并启动 Docker(推荐版本 ≥ 17.12)和 Go 语言环境(≥ 1.12)。 2. 将 FastBuild 源码克隆至本地: ```bash git clone https://github.com/your-org/fastbuild.git cd fastbuild ``` ### 2.无缓存构建 ```bash docker build -q -t test -f Dockerfile . ``` ### 3. 有缓存构建 #### 启动本地文件缓存代理 在项目根目录运行 FastBuild 的缓存代理程序 `http.go`,该程序会启动监听端口 `8080`,拦截并缓存 Dockerfile 执行过程中产生的 HTTP 请求: ```bash go run http.go ``` 保持该进程在后台运行。 #### 构建 FastBuild 加速镜像 使用 `Dockerfile`(包含 HTTP 代理参数)构建一个 “FastBuild” 镜像示例: ```bash docker build -t fastbuild:test \ --build-arg http_proxy=http://${host}:8080 \ --build-arg HTTP_PROXY=http://${host}:8080 \ -f Dockerfile . ``` --- 通过上述步骤,即可在现有 Docker 流水线中 **零侵入** 引入 FastBuild,加速镜像的拉取、构建与部署,为容器化开发和持续集成带来显著性能提升。