
starrocks/dev-env-ubuntu本文档介绍如何使用Docker编译StarRocks。
StarRocks提供适用于Ubuntu 22.04和CentOS 7.9的开发环境镜像。通过该镜像,您可以启动Docker容器并在容器中编译StarRocks。
StarRocks的不同分支对应StarRocks Docker Hub上提供的不同开发环境镜像。
Ubuntu 22.04:
| 分支名称 | 镜像名称 |
|---|---|
| main | starrocks/dev-env-ubuntu:latest |
| branch-3.5 | starrocks/dev-env-ubuntu:3.5-latest |
| branch-3.4 | starrocks/dev-env-ubuntu:3.4-latest |
| branch-3.3 | starrocks/dev-env-ubuntu:3.3-latest |
| branch-3.2 | starrocks/dev-env-ubuntu:3.2-latest |
| branch-3.1 | starrocks/dev-env-ubuntu:3.1-latest |
| branch-3.0 | starrocks/dev-env-ubuntu:3.0-latest |
| branch-2.5 | starrocks/dev-env-ubuntu:2.5-latest |
CentOS 7.9:
| 分支名称 | 镜像名称 |
|---|---|
| main | starrocks/dev-env-centos7:latest |
| branch-3.5 | starrocks/dev-env-centos7:3.5-latest |
| branch-3.4 | starrocks/dev-env-centos7:3.4-latest |
| branch-3.3 | starrocks/dev-env-centos7:3.3-latest |
| branch-3.2 | starrocks/dev-env-centos7:3.2-latest |
| branch-3.1 | starrocks/dev-env-centos7:3.1-latest |
| branch-3.0 | starrocks/dev-env-centos7:3.0-latest |
| branch-2.5 | starrocks/dev-env-centos7:2.5-latest |
编译StarRocks前,请确保满足以下要求:
硬件
机器至少需要8 GB内存。
软件
通过以下命令下载开发环境镜像:
Bash# 将<image_name>替换为您要下载的镜像名称,例如`starrocks/dev-env-ubuntu:latest`。 # 确保选择与您操作系统匹配的镜像。 docker pull <image_name>
Docker会自动识别机器的CPU架构并拉取相应的镜像。linux/amd64镜像适用于x86架构CPU,linux/arm64镜像适用于ARM架构CPU。
您可以选择挂载本地主机路径或不挂载本地主机路径的方式启动开发环境容器。建议挂载本地主机路径,以避免下次编译时重新下载Java依赖,并无需手动将二进制文件从容器复制到本地主机。
将StarRocks源码克隆到本地主机。
Bashgit clone [***]
启动容器。
Bash# 将<code_dir>替换为StarRocks源码目录的父目录。 # 将<branch_name>替换为与镜像对应的分支名称。 # 将<image_name>替换为您下载的镜像名称。 docker run -it -v <code_dir>/.m2:/root/.m2 \ -v <code_dir>/starrocks:/root/starrocks \ --name <branch_name> -d <image_name>
进入已启动的容器的bash shell。
Bash# 将<branch_name>替换为与镜像对应的分支名称。 docker exec -it <branch_name> /bin/bash
在容器中编译StarRocks。
Bashcd /root/starrocks && ./build.sh
启动容器。
Bash# 将<branch_name>替换为与镜像对应的分支名称。 # 将<image_name>替换为您下载的镜像名称。 docker run -it --name <branch_name> -d <image_name>
进入容器的bash shell。
Bash# 将<branch_name>替换为与镜像对应的分支名称。 docker exec -it <branch_name> /bin/bash
在容器中克隆StarRocks源码。
Bashgit clone [***]
在容器中编译StarRocks。
Bashcd starrocks && ./build.sh
问题:StarRocks BE编译失败,返回以下错误信息:
Bashg++: fatal error: Killed signal terminated program cc1plus compilation terminated.
解决方法:该错误表示Docker容器内存不足。需为容器分配至少8 GB的内存资源。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务