
pizzafactory0contorno/bazel本镜像为基于 Eclipse/Che7 的工作区镜像,预集成 Bazel 构建工具,旨在为开发者提供一个开箱即用、环境一致的 Bazel 应用构建环境。镜像整合了 Eclipse/Che7 云 IDE 的便捷性与 Bazel 的高效构建能力,无需本地配置即可快速开展基于 Bazel 的项目开发与构建工作。
WORKSPACE 和 BUILD 文件)bazel build //path/to/target 进行构建,或通过 IDE 集成的构建按钮触发/workspace/bazel-bin 目录,可通过挂载宿主机目录持久化若需在本地 Docker 环境独立运行(非 Eclipse/Che7 集成场景),可使用以下命令:
bashdocker run -d \ --name bazel-che7-workspace \ -p 8080:8080 \ # 暴露 Che7 Web 访问端口 -v /本地项目目录:/workspace \ # 挂载宿主机项目目录 -e BAZEL_VERSION=6.4.0 \ # 指定 Bazel 版本(可选,默认最新稳定版) -e USER_ID=$(id -u) \ # 同步宿主机用户 ID,避免权限问题 eclipse/che7-bazel-workspace:latest
访问 http://localhost:8080 即可打开 Eclipse/Che7 IDE,工作区已自动加载 /workspace 目录下的项目。
yamlversion: '3.8' services: bazel-workspace: image: eclipse/che7-bazel-workspace:latest container_name: bazel-che7-workspace ports: - "8080:8080" # Che7 Web 界面端口 - "9876:9876" # 可选,调试端口 volumes: - ./my-bazel-project:/workspace # 挂载本地 Bazel 项目 - bazel-cache:/root/.cache/bazel # 持久化 Bazel 构建缓存,加速重复构建 environment: - BAZEL_VERSION=6.4.0 - WORKSPACE_DIR=/workspace - USER_ID=1000 - GROUP_ID=1000 restart: unless-stopped volumes: bazel-cache: # 命名卷存储 Bazel 缓存
| 环境变量名 | 说明 | 默认值 |
|---|---|---|
BAZEL_VERSION | 指定 Bazel 版本,如 6.4.0 | 最新稳定版 |
WORKSPACE_DIR | 项目工作区路径(容器内) | /workspace |
USER_ID | 容器内运行用户 ID,用于权限匹配 | 1000 |
GROUP_ID | 容器内运行用户组 ID | 1000 |
BAZEL_OPTS | Bazel 全局默认参数,如 --verbose_failures | 空 |
HTTP_PROXY | 代理服务器地址(如需访问外部依赖) | 空 |
-v /本地目录:/workspace 挂载,确保代码持久化且可在宿主机编辑/root/.cache/bazel,建议通过命名卷或宿主机目录挂载持久化,避免重复构建时重新下载依赖/home/user/.che,如需保留个性化设置可额外挂载此目录若项目需要特定版本的编译器(如 GCC、JDK),可通过修改容器内 /etc/bazelrc 或挂载自定义 bazelrc 文件实现:
bash# 挂载自定义 bazelrc 配置 docker run ... -v /本地/bazelrc:/etc/bazelrc ...
在 GitLab CI/CD 中使用示例(.gitlab-ci.yml):
yamlbuild: image: eclipse/che7-bazel-workspace:latest script: - bazel build //src/main:my-app # 执行构建命令 - bazel test //src/test:my-app-test # 执行测试 variables: BAZEL_VERSION: "6.4.0" cache: paths: - /root/.cache/bazel # 缓存 Bazel 依赖,加速下次构建
USER_ID 和 GROUP_ID 环境变量同步宿主机用户 ID,并确保挂载目录权限正确BAZEL_VERSION 显式指定,避免版本不兼容导致构建失败HTTP_PROXY 配置代理--cpus、--memory 参数限制容器资源,避免影响宿主机性能manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务