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 到本地,并切换到预期修改的版本:
1 | git checkout v7.16.2 |
Step 1 精简构建步骤
构建步骤中,默认会包括 Windows\MacOS 以及 Arm 的构建,如果你并不需要这些平台,可以如下手动修改构建步骤,能够大大加快你的构建速度:
1 | # create_archive_pack(license_details, "x86_64", "linux", "windows", "darwin") |
Step 2 修改 Python 版本
如果你不想为了构建镜像额外下载其他 Python 版本,可以手动修改 Makefile
1 | # PY_VERSION ?= 3.6.13 |
理论上保证 Python 版本大于 3.5 即可。
Step 3 指定 JDK 版本
如标题所示,我们的目标是将 Logstash 镜像里的 OpenJDK 替换成 KonaJDK。构建时手动指定 JDK 地址即可
1 | 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