据我了解,可以使用多种方法将应用程序添加到OpenShift容器平台中的项目。
我知道没有一个适合所有人的尺码,但是我想办法突出每个选项周围的情况,例如为什么我要使用一个特定选项而不是其他选项?
更新 可能提出该问题的另一种方式是您的公司使用哪种方法,为什么?
答案 0 :(得分:1)
我对每个选项的个人看法如下,
Dockerfile:这很简单,适合图像的细微变化。 [https://docs.docker.com/engine/reference/commandline/build/]
多个docker镜像使用DeploymentConfig进行部署,它可以轻松构建应用程序堆栈。
在构建源代码之后,它是否使用基本映像(中间件)和二进制工件,对吗?它适用于基于中间件的应用程序,例如Tomcat和Apache Web服务器。您无需安装中间件即可构建应用程序,它可以帮助您节省时间。
答案 1 :(得分:1)
我认为,您指的是不同的Build Strategy Options。而且,在您的问题中,您可能错过了Pipeline Build strategy。
假设您已经开发了一个基本的NodeJS后端应用程序。您的目标是快速启动它并在OpenShift集群中运行。当我快速地说时,我的意思是不必学习Docker知识。在这种情况下,您将使用S2I。
start
中包含一个package.json
脚本以指向node index.js
。oc new-app .
继续使用基本的NodeJS后端示例,您可能会意识到OpenShift使用的base NodeJS image可能不适合您(出于多种原因)。也许您想使用Docker official NodeJS image。当然,可能还有其他非NodeJS的原因为您的应用程序构建容器,例如特殊环境变量等。在这里,您将使用Dockerfile
。
您也可以deploy a pre-built Docker image。请注意,默认情况下,OpenShift安全约束不允许您将容器作为root
运行。本文链接对此进行了调用,并为此约束提供了解决方法。
与以前的情况相同,但是,此部署需要此article中所述的机密(需要登录)。
因此,只要可以以OpenShift的“祝福”方式访问您的容器存储库,您就可以在外部构建映像并将其引入进行部署。
我可以引用为“场景”的最接近的是这个question。否则,也许构建方法是如此特殊,以至于在执行之前最好在“受控”环境中完成。
就我自己而言,我会走这条路。
Dockerfile
。或者,甚至是Jenkinsfile
。希望这会有所帮助。