公司动态
如何快速上手bazel-remote?5分钟搭建你的首个Bazel远程缓存服务
如何快速上手bazel-remote5分钟搭建你的首个Bazel远程缓存服务【免费下载链接】bazel-remoteA remote cache for Bazel项目地址: https://gitcode.com/gh_mirrors/ba/bazel-remotebazel-remote是一款轻量级的远程构建缓存服务专为Bazel等REAPI客户端设计通过HTTP/1.1和gRPC协议提供高效的缓存管理。它能自动管理磁盘空间删除 least recently usedLRU文件显著提升构建速度并节省带宽资源。 为什么选择bazel-remote核心优势解析bazel-remote作为Bazel远程缓存的最佳实践工具具备三大核心优势极速构建通过缓存已编译的中间产物避免重复构建将构建时间缩短50%以上智能存储自动维护缓存大小上限采用LRU算法高效管理磁盘空间多协议支持同时提供HTTP/1.1 REST API和gRPC接口兼容各种构建环境项目自2018年4月以来每天处理TB级别的缓存数据在普通硬件和AWS服务器上均表现出色最大出站带宽可超过15 Gbit/s。⚙️ 两种安装方式选择最适合你的方案方案1Docker一键部署推荐新手Docker方式是最简单快捷的安装方法只需三步即可完成拉取官方镜像docker pull buchgr/bazel-remote-cache启动服务将/path/to/cache/dir替换为实际目录docker run -u 1000:1000 -v /path/to/cache/dir:/data \ -p 9090:8080 -p 9092:9092 buchgr/bazel-remote-cache \ --max_size 5验证服务curl --head --fail http://localhost:8080/cas/e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855返回HTTP/1.1 200 OK即表示服务正常运行。方案2Docker Compose配置适合生产环境对于需要持久化配置的场景推荐使用Docker Compose创建配置文件examples/docker-compose.ymlversion: 3.6 services: bazel-cache: container_name: bazel-remote-cache image: buchgr/bazel-remote-cache:latest restart: always ports: - 9090:8080 - 9092:9092 command: --max_size1000 volumes: - /path/to/cache/dir:/data environment: BAZEL_REMOTE_GRPC_PORT: 9092启动服务docker-compose up -d 核心配置参数详解bazel-remote提供丰富的配置选项以下是最常用的参数参数说明示例--dir缓存数据存储目录必填--dir /data--max_size缓存最大容量GiB必填--max_size 50--http_addressHTTP服务地址--http_address 0.0.0.0:8080--grpc_addressgRPC服务地址--grpc_address 0.0.0.0:9092--storage_modeCAS blob存储格式--storage_mode zstd默认或uncompressed完整参数列表可通过./bazel-remote --help查看或参考项目配置文件示例。 Bazel客户端配置指南配置Bazel使用远程缓存只需添加--remote_cache参数bazel build //:target --remote_cachehttp://localhost:9090对于需要认证的场景可使用基本认证bazel build //:target --remote_cachehttp://user:passyour-cache-server:9090为避免密码泄露建议将配置添加到.bazelrc文件中build --remote_cachehttp://user:passyour-cache-server:9090 监控与状态检查bazel-remote提供内置状态监控端点可随时查看缓存使用情况curl http://localhost:8080/status典型输出{ CurrSize: 414081715503, ReservedSize: 876400, MaxSize: 8589934592000, NumFiles: 621413, ServerTime: 1746258977, GitCommit: d0f166cdd973342ec4aa8a51228cfd3a7a205414, GitTags: v2.5.1, NumGoroutines: 12 } 安全配置认证与加密基本认证.htpasswd创建.htpasswd文件htpasswd -c .htpasswd username启动带认证的服务docker run -v /path/to/cache/dir:/data \ -v /path/to/htpasswd:/etc/bazel-remote/htpasswd \ -p 9090:8080 buchgr/bazel-remote-cache \ --htpasswd_file /etc/bazel-remote/htpasswd --max_size 5TLS加密配置添加TLS支持需指定证书文件docker run -v /path/to/cache/dir:/data \ -v /path/to/server_cert:/etc/cert \ -v /path/to/server_key:/etc/key \ -p 9090:8080 buchgr/bazel-remote-cache \ --tls_cert_file/etc/cert --tls_key_file/etc/key --max_size 5❓ 常见问题解决Q: 如何修改缓存大小限制A: 可通过--max_size参数调整单位为GiB。对于正在运行的Docker容器需重启服务使更改生效。Q: 缓存目录迁移后无法启动怎么办A: 确保新目录权限正确Docker方式需保证挂载目录可被UID 1000读写。Q: 如何查看缓存命中率A: 启用指标监控--enable_endpoint_metrics通过Prometheus收集并查看bazel_remote_http_requests_total指标。 进阶资源完整配置选项README.mdKubernetes部署示例examples/kubernetes.yml系统服务配置examples/bazel-remote.service源码地址通过git clone https://gitcode.com/gh_mirrors/ba/bazel-remote获取最新代码【免费下载链接】bazel-remoteA remote cache for Bazel项目地址: https://gitcode.com/gh_mirrors/ba/bazel-remote创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考