如何在Openshift中的S2I构建期间执行命令?

如何在Openshift中的S2I构建期间执行命令?,openshift,s2i,Openshift,S2i,用于启动S2I源到映像构建的Openshift CLI命令如下所示: oc start build buildname-from dir=。/someDirectory wait=true 但是我们如何执行一些shell命令呢?os start build将创建构建定义中描述的映像,并将someDirectory复制到其中,但如果我们需要该映像的额外配置,而不仅仅是将编译的源代码推送到那里,该怎么办?有几个选项: 在Dockerfile中提供一个层 重写汇编脚本 汇编脚本覆盖选项: 提供.s2i

用于启动S2I源到映像构建的Openshift CLI命令如下所示:

oc start build buildname-from dir=。/someDirectory wait=true


但是我们如何执行一些shell命令呢?os start build将创建构建定义中描述的映像,并将someDirectory复制到其中,但如果我们需要该映像的额外配置,而不仅仅是将编译的源代码推送到那里,该怎么办?

有几个选项:

在Dockerfile中提供一个层 重写汇编脚本 汇编脚本覆盖选项:

提供.s2i/bin/assemble到代码存储库中 使用包含脚本的目录的URL在BuildConfig中指定spec.strategy.sourceStrategy.scripts请参见 汇编脚本和s2i工作流示例您可以签入,或者有一个简单的示例:

#!/bin/bash

# Run additional build before steps

# Execute original assemble script.
/usr/libexec/s2i/assemble

# Run additional build after steps
此外,还有postCommit,它在提交映像之后和将其推送到注册表之前执行。它在临时容器中执行,因此只能用于执行某些测试