10.3. 自定义 source-to-image 镜像
自定义 Source-to-image (S2I)构建器镜像,以修改默认的 assemble 和 run 脚本行为。当默认脚本不合适时,您可以调整 S2I 构建器来满足特定的应用程序要求。
10.3.1. 调用嵌入在镜像中的脚本 复制链接链接已复制到粘贴板!
您可以通过创建运行自定义逻辑和默认脚本的 wrapper 脚本来调用嵌入的 S2I 镜像脚本。您必须这样做来扩展构建器镜像行为,同时保留支持的脚本逻辑和升级兼容性。
流程
查看
io.openshift.s2i.scripts-url标签的值,以确定构建器镜像中的脚本位置:podman inspect --format='{{ index .Config.Labels "io.openshift.s2i.scripts-url" }}' wildfly/wildfly-centos7$ podman inspect --format='{{ index .Config.Labels "io.openshift.s2i.scripts-url" }}' wildfly/wildfly-centos7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
image:///usr/libexec/s2i
image:///usr/libexec/s2iCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您检查了
wildfly/wildfly-centos7构建器镜像,并发现脚本位于/usr/libexec/s2i目录中。创建一个包含其它命令中嵌套的标准脚本之一的脚本:
.s2i/bin/assemble脚本Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个示例显示了一个自定义 assemble 脚本,它输出信息,从镜像中运行标准 assemble 脚本,并根据 assemble 脚本的退出代码输出另一个信息。
重要当嵌套 run 脚本时,您必须使用
exec来调用它来确保正确处理信号。使用exec也无法在调用默认镜像运行脚本后运行附加命令。.s2i/bin/run脚本#!/bin/bash echo "Before running application" exec /usr/libexec/s2i/run
#!/bin/bash echo "Before running application" exec /usr/libexec/s2i/runCopy to Clipboard Copied! Toggle word wrap Toggle overflow