Openshift S2I构建镜像未覆盖脚本及Java镜像选型咨询
问题1:遗漏的配置排查
- 确认
.s2i/bin目录位置:必须放在执行s2i build命令的当前工作目录根路径下,s2i仅扫描构建上下文根目录的隐藏.s2i文件夹,路径拼写错误或层级不对都会导致脚本不被加载。 - 修复脚本权限:给
run.sh和assemble.sh添加可执行权限,执行命令:chmod +x .s2i/bin/*.sh,s2i会自动跳过无执行权限的脚本文件。 - 升级s2i版本:你使用的
s2i v1.3.9-dirty属于非稳定版本,存在目录识别的已知问题,建议升级到v1.4及以上的稳定版本再测试。 - 启用构建日志排查:执行构建命令时添加
-v参数开启 verbose 模式:
从日志中可以直接查看s2i是否检测到自定义脚本,以及是否有加载失败的提示信息。s2i build -v . registry.access.redhat.com/ubi9/openjdk-11:1.16-2 my-image-name
问题2:构建器镜像的正确性
registry.access.redhat.com/ubi9/openjdk-11:1.16-2是RedHat官方推出的、基于UBI9的标准s2i兼容Java构建器镜像,完全支持通过.s2i/bin目录下的自定义脚本覆盖默认构建/运行逻辑,镜像本身是符合需求的正确选择。该镜像内置了Maven环境,可直接用于常规Java项目的构建。
内容的提问来源于stack exchange,提问作者raghav
相关产品推荐
相关产品推荐

