Step 0 预备环境
Rake 是一个由 Ruby 实现的 Make-like 工具,可以用 Ruby 来编排项目任务流程,例如出二进制包、构建镜像等。在 GitHub Logstash 项目的 rakelib 里找到镜像构建逻辑。
构建之前,需要保证构建机包含以下工具:
- Docker
- GNU Make
- Python 3.5 with Virtualenv
- JRuby 9.1 (实际上 Mac 自带 Ruby 也是可行的)
然后将 Logstash 项目 clone 到本地,并切换到预期修改的版本:
代码语言:javascript复制git checkout v7.16.2
Step 1 精简构建步骤
构建步骤中,默认会包括 WindowsMacOS 以及 Arm 的构建,如果你并不需要这些平台,可以如下手动修改构建步骤,能够大大加快你的构建速度:
代码语言:javascript复制# create_archive_pack(license_details, "x86_64", "linux", "windows", "darwin")
create_archive_pack(license_details, "x86_64", "linux")
# create_archive_pack(license_details, "arm64", "linux")
artifacts.rake
Step 2 修改 Python 版本
如果你不想为了构建镜像额外下载其他 Python 版本,可以手动修改 Makefile
代码语言:javascript复制# PY_VERSION ?= 3.6.13
# =>
PY_VERSION ?= 3.6.7
Makefile
理论上保证 Python 版本大于 3.5 即可。
Step 3 指定 JDK 版本
如标题所示,我们的目标是将 Logstash 镜像里的 OpenJDK 替换成 KonaJDK。构建时手动指定 JDK 地址即可
代码语言:javascript复制JDK_URL=https://github.com/Tencent/TencentKona-11/releases/download/kona11.0.13-fiber/TencentKona-11.0.13.b1_jdk_fiber_linux-x86_64.tar.gz rake artifact:docker
等待构建,大功告成 xD