容器和kubernetes的新功能。
我正在尝试进行设置,以便我们在整个产品过程中都能与本地开发保持一致。
Skaffold似乎是执行此操作的好方法,但我对一些小示例和“理想的工作流程”感到困惑
引用https://github.com/GoogleContainerTools/skaffold/tree/master/examples/nodejs
他们提供的dockerfile使用nodemon。不会在产品中使用相同的容器吗?在产品中运行nodemon不好吗?
如何设置具有实时文件同步功能的kubernetes本地开发环境,并使用相同的资源(以具有幂等性)进行生产?
答案 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 deploy
和devspace dev
之间进行区分,从而应用某些替代值,例如覆盖图像的入口点。在这种情况下,您可以在package.json中指定2个npm脚本,并使用入口点npm start dev
和使用npm start
的生产模式启动开发模式。