首页 > 数据库 > 数据库开发技术 > 使用docker编译Doris
$ docker pull apache/incubator-doris:build-env-ldb-toolchain-latest
查看下载完成的镜像:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache/incubator-doris build-env-ldb-toolchain-latest ff06898af616 4 days ago 4.43GB
① 针对不同的Doris版本,需要下载相应的镜像版本。
apache/incubator-doris:build-env-ldb-toolchain-latest用于编译最新主干版本代码,会随主干版本不断更新。② Apache Doris 0.15 版本起,后续镜像版本号将与 Doris 版本号统一。比如可以使用
apache/incubator-doris:build-env-for-0.15.0来编译 0.15.0 版本。
Doris版本和镜像版本关系如下,可根据需要进行拉取。
| Doris版本 | 镜像版本 |
| 0.8.x, 0.9.x | apache/incubator-doris:build-env |
| 0.10.x, 0.11.x | apache/incubator-doris:build-env-1.1 |
| 0.12.x - 0.14.0 | apache/incubator-doris:build-env-1.2 |
| 0.14.x | apache/incubator-doris:build-env-1.3.1 |
| 0.15.0 | apache/incubator-doris:build-env-for-0.15.0 |
| master-latest | apache/incubator-doris:build-env-ldb-toolchain-latest |
注意:
① 从 build-env-1.3.1 的docker镜像起,同时包含了 OpenJDK 8 和 OpenJDK 11,并且默认使用 OpenJDK 11 编译。
② 请确保编译使用的 JDK 版本和运行时使用的 JDK 版本一致,否则会导致非预期的运行错误。
你可以使用在进入编译镜像的容器后,使用以下命令切换默认 JDK 版本。
切换到 JDK 8:
$ alternatives --set java java-1.8.0-openjdk.x86_64
$ alternatives --set javac java-1.8.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0切换到 JDK 11:
$ alternatives --set java java-11-openjdk.x86_64
$ alternatives --set javac java-11-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-11
$ docker run -it -v /home/casey/.m2:/root/.m2 -v /opt/software/incubator-doris-DORIS-0.15.0-release/:/root/incubator-doris-DORIS-0.15.0-release/ apache/incubator-doris:build-env-for-0.15.0
① -v /home/casey/.m2:/root/.m2:将镜像中 maven 的
.m2目录挂载到宿主机目录,以防止每次启动镜像编译时,重复下载 maven 的依赖库。② -v /opt/software/incubator-doris-DORIS-0.15.0-release/:/root/incubator-doris-DORIS-0.15.0-release/:将镜像中的源码目录挂载到宿主机目录,这样编译的产出二进制文件会存储在宿主机中。
启动镜像后,你应该已经处于容器内。可以通过以下命令下载 Doris 源码
$ wget https://dist.apache.org/repos/dist/dev/incubator/doris/xxx.tar.gz
or
$ git clone https://github.com/apache/incubator-doris.git
$ sh build.sh --clean --be --fe --ui
编译完成后,产出文件在 output/ 目录中。
原文作者:毛毛小妖的笔记;如有侵权,请联系管理员删除。