Nodejs Skaffold本地开发到生产过程

时间:2019-03-07 16:57:12

标签: node.js kubernetes skaffold

容器和kubernetes的新功能。

我正在尝试进行设置,以便我们在整个产品过程中都能与本地开发保持一致。

Skaffold似乎是执行此操作的好方法,但我对一些小示例和“理想的工作流程”感到困惑

引用https://github.com/GoogleContainerTools/skaffold/tree/master/examples/nodejs

他们提供的dockerfile使用nodemon。不会在产品中使用相同的容器吗?在产品中运行nodemon不好吗?

如何设置具有实时文件同步功能的kubernetes本地开发环境,并使用相同的资源(以具有幂等性)进行生产?

1 个答案:

答案 0 :(得分:1)

您绝对正确。不建议在生产容器中使用nodemon。相反,您通常需要不同的映像或不同的入口点来进行开发,登台和生产。有两种解决方法:

1。多个Dockerfile
您可以在Skaffold中配置配置文件,并在构建步骤中告诉Skaffold使用其他Dockerfile:https://skaffold.dev/docs/how-tos/profiles/

2。单个Dockerfile + Dev覆盖
如果您不想管理多个Dockerfile,则可以使用支持dev覆盖的dev工具。例如,DevSpace(https://github.com/devspace-cloud/devspace)会在devspace deploydevspace dev之间进行区分,从而应用某些替代值,例如覆盖图像的入口点。在这种情况下,您可以在package.json中指定2个npm脚本,并使用入口点npm start dev和使用npm start的生产模式启动开发模式。