Openshift应用程序生命周期事件 - 应用程序创建事件?

时间:2017-08-26 18:29:24

标签: openshift

我试图在OpenShift中挂钩应用程序创建的事件 - 如果存在这样的事件。

原因是,我希望有一个命令运行(理想情况下在新的pod中),用于创建数据库模式。在应用程序映像中使用它没有意义,因为我只需要运行一次 - 创建应用程序时。 我已经研究了pod生命周期钩子(https://docs.openshift.com/enterprise/3.1/dev_guide/deployments.html#pod-based-lifecycle-hook)但是每次有新的部署时都会发生这些事件。所以这对我的用例来说也经常发生。

创建Openshift应用程序时,有没有办法让图像只运行一次?

1 个答案:

答案 0 :(得分:1)

您在此处的评论中走在正确的轨道上。在OpenShift v2天中,生命周期钩子存在相同的场景。

例如,对于我们在OpenShift v2中的WordPress快速入门,我们将检查是否在每次新部署时都创建了数据库。如果没有,我们初始化了一个与应用程序同名的空数据库(在这种情况下,让WordPress随后创建模式,但这里需要相同的想法):OpenShift v2 WordPress deploy action hook

在OpenShift v3中,有几种方法可以实现类似的生命周期钩子,但我们现在在模板中使用的常见模式是利用执行新pod的功能,以便在之前运行数据库设置步骤到部署阶段:OpenShift v3 CakePHP pre deploy lifecycle hook

遵循此模式,您将添加代码以在源代码库中的v3 CakePHP migrate-database.sh之类的文件中生成数据库模式,并使用预部署生命周期钩子(通过execNewPod)执行脚本,首先检查以查看如果在加载模式之前存在数据库/模式(从someknowntable limit 1中选择*)。