构建 Docker Image
该文档主要介绍了如何通过 Dockerfile 来制作 Apache Doris 的运行镜像,以便于在容器化编排工具或者快速测试过程中可迅速拉取一个 Apache Doris Image 来完成集群的创建。
软硬件要求
概述
Docker 镜像在制作前要提前准备好制作机器,该机器的平台架构决定了制作以后的 Docker Image 适用的平台架构,如 X86_64 机器,需要下载 X86_64 的 Doris 二进制程序,制作以后的 Image 仅可在 X86_64 平台上运行。ARM 平台(M1 视同为 ARM)同理。
硬件要求
最低配置:2C 4G
推荐配置:4C 16G
软件要求
Docker Version:20.10 及以后版本
Docker Image 构建
Dockerfile 脚本编写需要注意以下几点:
- 基础父镜像选用经过 Docker-Hub 认证的 OpenJDK 官方镜像,版本用 JDK 1.8 版本
- 应用程序默认使用官方提供的二进制包进行下载,勿使用来源不明的二进制包
- 需要内嵌脚本来完成 FE 的启动、多 FE 注册、状态检查和 BE 的启动、注册 BE 至 FE 、状态检查等任务流程
- 应用程序在 Docker 内启动时不应使用
--daemon的方式启动,否则在 K8S 等编排工具部署过程中会有异常
由于 Apache Doris 1.2 版本开始,开始支持 JavaUDF 能力,故而 BE 也需要有 JDK 环境,推荐的镜像如下:
| Doris 程序 | 推荐基础父镜像 |
|---|---|
| Frontend | openjdk:8u342-jdk |
| Backend | openjdk:8u342-jdk |
| Broker | openjdk:8u342-jdk |
脚本前期准备
编译 Docker Image 的 Dockerfile 脚本中,关于 Apache Doris 程序二进制包的加载方式,有两种:
- 通过 wget / curl 在编译时执行下载命令,随后完成 docker build 制作过程
- 提前下载二进制包至编译目录,然后通过 ADD 或者 COPY 命令加载至 docker build 过程中
使用前者会让 Docker Image Size 更小,但是如果构建失败的话可能下载操作会重复进行,导致构建时间过长,而后者更适用于网络环境不是很好的构建环境。
综上,本文档的示例以第二种方式为准,若有第一种诉求,可根据自己需求定制修改即可。
准备二进制包
需要注意的是,如有定制化开发需求,则需要自己修改源码后进行编译打包,然后放置至构建目录即可。
若无特殊需求,直接下载官网提供的二进制包即可。
构建步骤
构建 FE
构建环境目录如下:
└── docker-build // 构建根目录
└── fe // FE 构建目录
├── dockerfile // dockerfile 脚本
└── resource // 资源目录
├── init_fe.sh // 启动及注册脚本
└── apache-doris-x.x.x-bin-fe.tar.gz // 二进制程序包
-
创建构建环境目录
mkdir -p ./docker-build/fe/resource -
下载官方二进制包/编译的二进制包
拷贝二进制包至
./docker-build/fe/resource目录下 -
编写 FE 的 Dockerfile 脚本
# 选择基础镜像 FROM openjdk:8u342

本文档详细介绍了如何通过Dockerfile来制作ApacheDoris的运行镜像,包括FE、BE和Broker的构建过程。文档提到了硬件和软件的要求,以及Dockerfile的编写注意事项,强调了基础镜像的选择、二进制包的加载方式和启动脚本的编写。此外,还涵盖了Docker镜像的推送至DockerHub或私有仓库,以及在Docker和Kubernetes环境中的部署方法。

1383

被折叠的 条评论
为什么被折叠?



