Nodejs Skaffold 本地开发到生产流程

Nodejs Skaffold local development to prod process

容器和 kubernetes 的新手。

我正在尝试进行设置,以便我们在整个生产过程中始终保持本地开发的平等。

Skaffold 似乎是执行此操作的好方法,但我对一些小示例和 'ideal workflow'

感到困惑

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

他们给的dockerfile用的是nodemon。不会在产品中使用同一个容器吗?在产品中成为 运行 nodemon 不是很糟糕吗?

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

你完全正确。不建议在生产容器中使用 nodemon。相反,您通常需要不同的图像或不同的入口点用于开发、暂存和生产。有两种选择可以解决这个问题:

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

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

启动生产模式