Tencent/TencentKona-8

Konajdk8 基础镜像的优化建议

irwinsun opened this issue · 5 comments

目前蓝盾社区开源版的基础镜像想从openjdk:8-jdk-slim 切换到 konajdk/konajdk:8 , 但在切换过程中发现一些使用上的不便,对比目前openJDK的镜像,提2点优化建议,希望Kona越来越好:

1、konajdk/konajdk:8 缺失一些基础的软件安装管理工具, 比如yum或apt 等,对比openjdk:8-jdk-slim 是有基础的apt工具,基于这个基础镜像,可以快速安装一些缺失的软件。 相反konajdk需要手动的去下二进制包到本地再安装,不利于维护

2、konajdk/konajdk:8 和 konajdk/konajdk:aarch64-8.0.9 对应amd64/arm64, 像这种同一个版本jdk的不同平台架构镜像,在tag的管理可以像 openjdk:8-jdk-slim 一样, 不需要让用户用找不同的tag来区别是基于arm64或基于amd64 。
https://hub.docker.com/layers/openjdk/library/openjdk/8-jdk-slim/images/sha256-15d9cad96da611b8ec1990d13001bddaa62aa75e36d1a7dbe949506265791251?context=explore
比如像下图
image
image

第一个问题:
konajdk/konajdk:8 是基于alpine镜像构建,主要适用于对镜像大小要求比较高的用户使用。
其他用户,可以使用基于tlinux版本的镜像,基本的工具都已安装
docker pull konajdk/konajdk:8-tlinux

第二个问题:
很好的建议,十分感谢。已列入我们的发布计划中。

可通过如下命令在不同的架构下获取基于alpine的镜像
docker pull konajdk/konajdk:8-alpine

第一个问题: konajdk/konajdk:8 是基于alpine镜像构建,主要适用于对镜像大小要求比较高的用户使用。 其他用户,可以使用基于tlinux版本的镜像,基本的工具都已安装 docker pull konajdk/konajdk:8-tlinux

第二个问题: 很好的建议,十分感谢。已列入我们的发布计划中。

关于第一个问题答复, 其实在alpine镜像增加或删除一个yum / apt 安装工具并不会对镜像的大小产生质的影响, 并不需要预置其他工具,

举一个实际场景:当用户在容器中想定位现场业务问题时,在需要使用一些工具命令时,发现没有了,一般是可以直接yum install/ apt 直接安装就能用了。

谢谢你的建议,我们先评估下业务的需求。由于KonaJDK是内外一致,包括镜像。需要与实际的业务方讨论

@irwinsun 我已经基于KonaJDK 8做了如下镜像:
docker push kervin521/konajdk:8.0.15_8u382-alpine
docker push kervin521/konajdk:8.0.15_8u382-jre
docker push kervin521/konajdk:8.0.15_8u382-aarch64
docker push kervin521/konajdk:8.0.15_8u382

8.0.15_8u382-alpine:基于Alpine做的,支持x86_64架构,并解决中文乱码问题,可以通过apk add xxx安装其他工具
8.0.15_8u382-jre:基于Debian制作的,支持x86_64架构,并解决中文乱码问题,可以通过apt install xxx安装其他工具
8.0.15_8u382-aarch64:基于Alpine制作的,支持aarch64架构,并解决中文乱码问题,可以通过apk add xxx安装其他工具
8.0.15_8u382:基于Ubuntu 制作的,支持x86_64架构,并解决中文乱码问题,可以通过apt instal xxx安装其他工具

x86_64架构:已经在戴尔、联想、新华三等硬件上使用,并应用于20多个现场
aarch64架构:已经在长城飞腾系列、华为鲲鹏系列等硬件上使用,即将应用2个现场

以上镜像默认安装iputils vim sysstat htop curl方便定位问题